mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-10 14:07:59 -05:00
Merge branch 'develop' into inji-282-disabled-camera-permission-view
This commit is contained in:
142
.github/workflows/android-beta-build.yml
vendored
142
.github/workflows/android-beta-build.yml
vendored
@@ -1,142 +0,0 @@
|
||||
name: Android Beta Build
|
||||
|
||||
env:
|
||||
mimotoBackendServiceDefaultUrl: https://api.sandbox.mosip.net
|
||||
esignetBackendServiceDefaultUrl: https://api.sandbox.mosip.net
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Tag to be published'
|
||||
required: true
|
||||
default: 'v1.2.3'
|
||||
type: string
|
||||
body:
|
||||
description: 'Release body message'
|
||||
required: true
|
||||
default: 'Changes in this Release'
|
||||
type: string
|
||||
pre-release:
|
||||
description: 'Pre-release? True/False'
|
||||
required: true
|
||||
default: False
|
||||
type: string
|
||||
mimotoBackendServiceUrl:
|
||||
description: 'Mimoto backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
esignetBackendServiceUrl:
|
||||
description: 'Esignet backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
theme:
|
||||
description: 'Application Theme'
|
||||
required: true
|
||||
default: 'orange'
|
||||
type: choice
|
||||
options:
|
||||
- orange
|
||||
- purple
|
||||
buildDescription:
|
||||
description: 'What to test'
|
||||
required: true
|
||||
default: 'QA-Triple environment'
|
||||
type: string
|
||||
registry_edit:
|
||||
description: 'Edit Registry'
|
||||
required: true
|
||||
default: 'true'
|
||||
type: choice
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
with:
|
||||
tag_name: ${{ github.event.inputs.tag }}
|
||||
release_name: ${{ github.event.inputs.tag }}
|
||||
body: ${{ github.event.inputs.body }}
|
||||
draft: false
|
||||
prerelease: ${{fromJSON(github.event.inputs.pre-release)}}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check for git tag
|
||||
run: |
|
||||
cd android/scripts
|
||||
./git-tag.sh
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
- name: Create .env.local file
|
||||
run: |
|
||||
echo "${{ secrets.ENV_FILE }}" > .env.local > android/local.properties
|
||||
|
||||
- name: Setup branch and env
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV
|
||||
echo "GPG_TTY=$(tty)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup branch and GPG public key
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo ${{ env.BRANCH_NAME }}
|
||||
echo ${{ env.GPG_TTY }}
|
||||
|
||||
sudo apt-get --yes install gnupg2
|
||||
gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg
|
||||
gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg
|
||||
|
||||
- name: Generate keystore
|
||||
run: |
|
||||
echo "$ANDROID_KEYSTORE_FILE" > release.keystore.b64
|
||||
base64 -d -i release.keystore.b64 > android/app/release.keystore
|
||||
env:
|
||||
ANDROID_KEYSTORE_FILE: ${{ secrets.INJI_ANDROID_RELEASE_KEYSTORE }}
|
||||
|
||||
- name: Export variables for keystore
|
||||
run: |
|
||||
cd android/app
|
||||
export RELEASE_KEYSTORE_ALIAS=androidreleasekey
|
||||
export RELEASE_KEYSTORE_PASSWORD=$RELEASE_KEYSTORE_PASSWORD
|
||||
env:
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{secrets.INJI_ANDROID_RELEASE_STOREPASS}}'
|
||||
|
||||
- name: Create Google Play Config file
|
||||
run : |
|
||||
cd android
|
||||
echo "$INJI_ANDROID_PLAY_STORE_CONFIG_JSON" > play_config.json.b64
|
||||
base64 -d -i play_config.json.b64 > play_config.json
|
||||
env:
|
||||
INJI_ANDROID_PLAY_STORE_CONFIG_JSON: ${{ secrets.INJI_ANDROID_PLAY_STORE_CONFIG_JSON }}
|
||||
|
||||
- name: Run Build
|
||||
run: |
|
||||
cd android/scripts
|
||||
./beta-build.sh
|
||||
env:
|
||||
MIMOTO_HOST: ${{ github.event.inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ github.event.inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ github.event.inputs.theme }}
|
||||
RELEASE_KEYSTORE_ALIAS: androidreleasekey
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{secrets.INJI_ANDROID_RELEASE_STOREPASS}}'
|
||||
SLACK_URL: '${{ secrets.SLACK_WEBHOOK_DEVOPS }}'
|
||||
PLAY_CONSOLE_RELEASE_DESCRIPTION: ${{ github.event.inputs.buildDescription }}
|
||||
CREDENTIAL_REGISTRY_EDIT: ${{ github.event.inputs.registry_edit }}
|
||||
148
.github/workflows/android-build-verify.yml
vendored
148
.github/workflows/android-build-verify.yml
vendored
@@ -1,148 +0,0 @@
|
||||
name: PR - Android build verification
|
||||
|
||||
env:
|
||||
backendServiceDefaultUrl: https://api.sandbox.mosip.net
|
||||
DUMMY_INJI_ANDROID_DEBUG_STOREPASS: 'password'
|
||||
DUMMY_GOOGLE_SERVICE_JSON: '{
|
||||
"project_info": {
|
||||
"project_number": "mockproject-1234",
|
||||
"project_id": "123456789000",
|
||||
"storage_bucket": "mock-project.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:123456789000:android:f1bf012572b04063",
|
||||
"android_client_info": {
|
||||
"package_name": "io.mosip.residentapp"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "123456789000-hjugbg6ud799v4c49dim8ce2usclthar.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzbSzCn1N6LWIe6wthYyrgUUSAlUsdqMb-wvTo"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "123456789000-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}'
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
- demobranch
|
||||
- qa-develop
|
||||
- 0.9
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
types: [ opened, synchronize ]
|
||||
branches:
|
||||
- develop
|
||||
- 'release-**'
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Cache local npm repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
path: ~/.npm
|
||||
|
||||
- name: Cache local gradle repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
|
||||
- name: Setup branch and env
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV
|
||||
echo "GPG_TTY=$(tty)" >> $GITHUB_ENV
|
||||
echo "DUMMY_INJI_ANDROID_DEBUG_STOREPASS=$DUMMY_INJI_ANDROID_DEBUG_STOREPASS" >> $GITHUB_ENV
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
- name: Create .env.local file
|
||||
run: |
|
||||
echo "${{ secrets.ENV_FILE }}" > .env.local > android/local.properties
|
||||
|
||||
- name: Setup branch and GPG public key
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo ${{ env.BRANCH_NAME }}
|
||||
echo ${{ env.GPG_TTY }}
|
||||
|
||||
sudo apt-get --yes install gnupg2
|
||||
gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg
|
||||
gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg
|
||||
|
||||
- name: Generate keystore
|
||||
run: |
|
||||
keytool \
|
||||
-genkey -v \
|
||||
-storetype PKCS12 \
|
||||
-keyalg RSA \
|
||||
-keysize 2048 \
|
||||
-validity 10000 \
|
||||
-storepass $DEBUG_KEYSTORE_PASSWORD \
|
||||
-keypass $DEBUG_KEYSTORE_PASSWORD \
|
||||
-alias androiddebugkey \
|
||||
-keystore android/app/debug.keystore \
|
||||
-dname "CN=io.mosip.residentapp,OU=,O=,L=,S=,C=US"
|
||||
env:
|
||||
DEBUG_KEYSTORE_PASSWORD: ${{secrets.INJI_ANDROID_DEBUG_STOREPASS || env.DUMMY_INJI_ANDROID_DEBUG_STOREPASS }}
|
||||
|
||||
- name: Export variables for keystore
|
||||
run: |
|
||||
cd android/app
|
||||
export DEBUG_KEYSTORE_ALIAS=androiddebugkey
|
||||
export DEBUG_KEYSTORE_PASSWORD=$DEBUG_KEYSTORE_PASSWORD
|
||||
env:
|
||||
DEBUG_KEYSTORE_PASSWORD: ${{secrets.INJI_ANDROID_DEBUG_STOREPASS || env.DUMMY_INJI_ANDROID_DEBUG_STOREPASS }}
|
||||
|
||||
- name: Bump version code
|
||||
uses: chkfung/android-version-actions@v1.2.1
|
||||
with:
|
||||
gradlePath: android/app/build.gradle
|
||||
versionCode: ${{github.run_number}}
|
||||
|
||||
- name: Run Build using Fastlane
|
||||
run: |
|
||||
cd android/scripts
|
||||
./verify-build.sh
|
||||
env:
|
||||
DEBUG_KEYSTORE_ALIAS: androiddebugkey
|
||||
DEBUG_KEYSTORE_PASSWORD: ${{secrets.INJI_ANDROID_DEBUG_STOREPASS || env.DUMMY_INJI_ANDROID_DEBUG_STOREPASS }}
|
||||
211
.github/workflows/android-internal-build.yml
vendored
211
.github/workflows/android-internal-build.yml
vendored
@@ -1,211 +0,0 @@
|
||||
name: Android Internal Build
|
||||
run-name: ${{ github.event.inputs.buildname }}
|
||||
|
||||
env:
|
||||
mimotoBackendServiceDefaultUrl: https://api.sandbox.mosip.net
|
||||
esignetBackendServiceDefaultUrl: https://api.sandbox.mosip.net
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
buildname:
|
||||
description: 'Build App For'
|
||||
required: true
|
||||
default: 'Sprint-x/Collab/release-x.x.x'
|
||||
type: string
|
||||
mimotoBackendServiceUrl:
|
||||
description: 'Mimoto backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
esignetBackendServiceUrl:
|
||||
description: 'Esignet backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
theme:
|
||||
description: 'Application Theme'
|
||||
required: true
|
||||
default: 'orange'
|
||||
type: choice
|
||||
options:
|
||||
- orange
|
||||
- purple
|
||||
buildDescription:
|
||||
description: 'What to test'
|
||||
required: true
|
||||
default: 'QA-Triple environment'
|
||||
type: string
|
||||
registry_edit:
|
||||
description: 'Edit Registry'
|
||||
required: true
|
||||
default: 'true'
|
||||
type: choice
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Cache local npm repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
path: ~/.npm
|
||||
|
||||
- name: Cache local gradle repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
- name: Create .env.local file
|
||||
run: |
|
||||
echo "${{ secrets.ENV_FILE }}" > .env.local > android/local.properties
|
||||
|
||||
- name: Setup branch and env
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV
|
||||
echo "GPG_TTY=$(tty)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup branch and GPG public key
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo ${{ env.BRANCH_NAME }}
|
||||
echo ${{ env.GPG_TTY }}
|
||||
|
||||
sudo apt-get --yes install gnupg2
|
||||
gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg
|
||||
gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg
|
||||
|
||||
- name: Generate keystore
|
||||
run: |
|
||||
echo "$ANDROID_KEYSTORE_FILE" > release.keystore.b64
|
||||
base64 -d -i release.keystore.b64 > android/app/release.keystore
|
||||
env:
|
||||
ANDROID_KEYSTORE_FILE: ${{ secrets.INJI_ANDROID_RELEASE_KEYSTORE }}
|
||||
|
||||
- name: Export variables for keystore
|
||||
run: |
|
||||
cd android/app
|
||||
export RELEASE_KEYSTORE_ALIAS=androidreleasekey
|
||||
export RELEASE_KEYSTORE_PASSWORD=$RELEASE_KEYSTORE_PASSWORD
|
||||
env:
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{secrets.INJI_ANDROID_RELEASE_STOREPASS}}'
|
||||
|
||||
- name: Create Google Play Config file
|
||||
run: |
|
||||
cd android
|
||||
echo "$INJI_ANDROID_PLAY_STORE_CONFIG_JSON" > play_config.json.b64
|
||||
base64 -d -i play_config.json.b64 > play_config.json
|
||||
env:
|
||||
INJI_ANDROID_PLAY_STORE_CONFIG_JSON: ${{ secrets.INJI_ANDROID_PLAY_STORE_CONFIG_JSON }}
|
||||
|
||||
- name: Run Build
|
||||
run: |
|
||||
cd android/scripts
|
||||
./internal-build.sh
|
||||
env:
|
||||
MIMOTO_HOST: ${{ github.event.inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ github.event.inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ github.event.inputs.theme }}
|
||||
RELEASE_KEYSTORE_ALIAS: androidreleasekey
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{secrets.INJI_ANDROID_RELEASE_STOREPASS}}'
|
||||
SLACK_URL: '${{ secrets.SLACK_WEBHOOK_DEVOPS }}'
|
||||
PLAY_CONSOLE_RELEASE_DESCRIPTION: ${{ github.event.inputs.buildDescription }}
|
||||
CREDENTIAL_REGISTRY_EDIT: ${{ github.event.inputs.registry_edit }}
|
||||
|
||||
upload-to-actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Cache local npm repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
path: ~/.npm
|
||||
|
||||
- name: Cache local gradle repository
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm i
|
||||
|
||||
- name: Create .env.local file
|
||||
run: |
|
||||
echo "${{ secrets.ENV_FILE }}" > .env.local > android/local.properties
|
||||
|
||||
- name: Setup branch and env
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV
|
||||
echo "GPG_TTY=$(tty)" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup branch and GPG public key
|
||||
run: |
|
||||
# Strip git ref prefix from version
|
||||
echo ${{ env.BRANCH_NAME }}
|
||||
echo ${{ env.GPG_TTY }}
|
||||
|
||||
sudo apt-get --yes install gnupg2
|
||||
gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg
|
||||
gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg
|
||||
|
||||
- name: Generate keystore
|
||||
run: |
|
||||
echo "$ANDROID_KEYSTORE_FILE" > release.keystore.b64
|
||||
base64 -d -i release.keystore.b64 > android/app/release.keystore
|
||||
env:
|
||||
ANDROID_KEYSTORE_FILE: ${{ secrets.INJI_ANDROID_RELEASE_KEYSTORE }}
|
||||
|
||||
- name: Create Google Play Config file
|
||||
run: |
|
||||
cd android
|
||||
echo "$INJI_ANDROID_PLAY_STORE_CONFIG_JSON" > play_config.json.b64
|
||||
base64 -d -i play_config.json.b64 > play_config.json
|
||||
env:
|
||||
INJI_ANDROID_PLAY_STORE_CONFIG_JSON: ${{ secrets.INJI_ANDROID_PLAY_STORE_CONFIG_JSON }}
|
||||
|
||||
- name: Run Build for upload
|
||||
run: |
|
||||
npx jetify
|
||||
cd android
|
||||
./gradlew :app:assembleMosipRelease
|
||||
env:
|
||||
MIMOTO_HOST: ${{ github.event.inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ github.event.inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ github.event.inputs.theme }}
|
||||
RELEASE_KEYSTORE_ALIAS: androidreleasekey
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{secrets.INJI_ANDROID_RELEASE_STOREPASS}}'
|
||||
CREDENTIAL_REGISTRY_EDIT: ${{ github.event.inputs.registry_edit }}
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: ${{ github.event.inputs.buildname }}
|
||||
path: android/app/build/outputs/apk/mosip/release/
|
||||
retention-days: 10
|
||||
10
.github/workflows/clear-artifacts.yml
vendored
Normal file
10
.github/workflows/clear-artifacts.yml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
name: "Delete old artifacts"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
delete-artifacts:
|
||||
uses: mosip/kattu/.github/workflows/clear-artifacts.yml@master
|
||||
secrets:
|
||||
ACCESS_TOKEN: ${{ secrets.ACTION_PAT }}
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
|
||||
15
.github/workflows/clear_artifacts.yml
vendored
15
.github/workflows/clear_artifacts.yml
vendored
@@ -1,15 +0,0 @@
|
||||
name: 'Delete old artifacts'
|
||||
on:
|
||||
workflow_dispatch:
|
||||
name: 'Delete old artifacts'
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
delete-artifacts:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: kolpav/purge-artifacts-action@v1
|
||||
with:
|
||||
token: ${{ secrets.ACTION_PAT }}
|
||||
expire-in: 2days # Setting this to 0 will delete all artifacts
|
||||
177
.github/workflows/internal-build.yml
vendored
Normal file
177
.github/workflows/internal-build.yml
vendored
Normal file
@@ -0,0 +1,177 @@
|
||||
name: Internal Build [Android & IOS]
|
||||
run-name: ${{ inputs.buildname }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release:
|
||||
description: 'Internal/Beta'
|
||||
required: true
|
||||
default: 'internal'
|
||||
type: choice
|
||||
options:
|
||||
- internal
|
||||
- beta
|
||||
buildFor:
|
||||
description: 'Build'
|
||||
required: true
|
||||
default: 'Both[Android and IOS]'
|
||||
type: choice
|
||||
options:
|
||||
- Both[Android and IOS]
|
||||
- Android
|
||||
- IOS
|
||||
buildName:
|
||||
description: 'Build App For'
|
||||
required: true
|
||||
default: 'Sprint-x/Collab/release-x.x.x'
|
||||
type: string
|
||||
mimotoBackendServiceUrl:
|
||||
description: 'Mimoto backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
esignetBackendServiceUrl:
|
||||
description: 'Esignet backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
injiFlavor:
|
||||
description: 'Select Inji flavor'
|
||||
required: true
|
||||
default: 'Inji'
|
||||
type: choice
|
||||
options:
|
||||
- residentapp
|
||||
- inji
|
||||
- collab
|
||||
- synergy
|
||||
- mec
|
||||
internal-testers:
|
||||
description: 'Internal Testers Group'
|
||||
required: true
|
||||
default: 'QA-Triple'
|
||||
type: choice
|
||||
options:
|
||||
- Dev-testing
|
||||
- MEC
|
||||
- QA
|
||||
- MOSIP-Collab
|
||||
- MOSIP-Dev-testing
|
||||
theme:
|
||||
description: 'Application Theme'
|
||||
required: true
|
||||
default: 'orange'
|
||||
type: choice
|
||||
options:
|
||||
- orange
|
||||
- purple
|
||||
buildDescription:
|
||||
description: 'What to test'
|
||||
required: true
|
||||
default: 'QA-Triple environment'
|
||||
type: string
|
||||
allow_env_edit:
|
||||
description: 'Edit ENV'
|
||||
required: true
|
||||
default: 'true'
|
||||
type: choice
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
if: ${{ inputs.buildFor == 'Both[Android and IOS]' || inputs.buildFor == 'Android'}}
|
||||
uses: mosip/kattu/.github/workflows/android-publish.yml@master
|
||||
with:
|
||||
RELEASE: ${{ inputs.release }}
|
||||
NODE_VERSION: '16.x'
|
||||
RELEASE_KEYSTORE_ALIAS: androidreleasekey
|
||||
MIMOTO_HOST: ${{ inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ inputs.theme }}
|
||||
BUILD_DESCRIPTION: ${{ inputs.buildDescription }}
|
||||
ALLOW_ENV_EDIT: ${{ inputs.allow_env_edit }}
|
||||
APP_FLAVOR: ${{ inputs.injiFlavor }}
|
||||
SERVICE_LOCATION: '.'
|
||||
ANDROID_SERVICE_LOCATION: 'android'
|
||||
BUILD_SCRIPT_LOCATION: 'scripts'
|
||||
SCRIPT_NAME: "./${{ inputs.release }}.sh"
|
||||
ANDROID_ARTIFACT_NAME: ${{ inputs.buildname }}
|
||||
ANDROID_ARTIFACT_PATH: "android/app/build/outputs/apk/${{ inputs.injiFlavor }}/release/Inji_universal.apk"
|
||||
secrets:
|
||||
ANDROID_KEYSTORE_FILE: ${{ secrets.INJI_ANDROID_RELEASE_KEYSTORE }}
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{ secrets.INJI_ANDROID_RELEASE_STOREPASS }}'
|
||||
INJI_ANDROID_PLAY_STORE_CONFIG_JSON: ${{ secrets.INJI_ANDROID_PLAY_STORE_CONFIG_JSON }}
|
||||
SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK }}'
|
||||
|
||||
build-android-beta:
|
||||
if: ${{ inputs.release == 'beta' && (inputs.buildFor == 'Both[Android and IOS]' || inputs.buildFor == 'Android') }}
|
||||
uses: mosip/kattu/.github/workflows/android-publish.yml@master
|
||||
with:
|
||||
RELEASE: ${{ inputs.release }}
|
||||
NODE_VERSION: '16.x'
|
||||
RELEASE_KEYSTORE_ALIAS: androidreleasekey
|
||||
MIMOTO_HOST: ${{ inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ inputs.theme }}
|
||||
BUILD_DESCRIPTION: ${{ inputs.buildDescription }}
|
||||
ALLOW_ENV_EDIT: ${{ inputs.allow_env_edit }}
|
||||
APP_FLAVOR: ${{ inputs.injiFlavor }}
|
||||
SERVICE_LOCATION: '.'
|
||||
ANDROID_SERVICE_LOCATION: 'android'
|
||||
BUILD_SCRIPT_LOCATION: 'scripts'
|
||||
SCRIPT_NAME: "./${{ inputs.release }}.sh"
|
||||
ANDROID_ARTIFACT_NAME: ${{ inputs.buildname }}
|
||||
ANDROID_ARTIFACT_PATH: "android/app/build/outputs/apk/${{ inputs.injiFlavor }}/release/Inji_universal.apk"
|
||||
secrets:
|
||||
ANDROID_KEYSTORE_FILE: ${{ secrets.INJI_ANDROID_RELEASE_KEYSTORE }}
|
||||
RELEASE_KEYSTORE_PASSWORD: '${{ secrets.INJI_ANDROID_RELEASE_STOREPASS }}'
|
||||
INJI_ANDROID_PLAY_STORE_CONFIG_JSON: ${{ secrets.INJI_ANDROID_PLAY_STORE_CONFIG_JSON }}
|
||||
SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK }}'
|
||||
|
||||
build-ios:
|
||||
if: ${{ inputs.buildFor == 'Both[Android and IOS]' || inputs.buildFor == 'IOS'}}
|
||||
uses: mosip/kattu/.github/workflows/ios-publish.yml@master
|
||||
with:
|
||||
NODE_VERSION: '18.x'
|
||||
MIMOTO_HOST: ${{ inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ inputs.esignetBackendServiceUrl }}
|
||||
APPLICATION_THEME: ${{ inputs.theme }}
|
||||
TESTFLIGHT_BETA_APP_DESCRIPTION: ${{ inputs.buildDescription }}
|
||||
ALLOW_ENV_EDIT: ${{ inputs.allow_env_edit }}
|
||||
TESTFLIGHT_INTERNAL_TESTERS_GROUP: ${{ inputs.internal-testers }}
|
||||
APP_FLAVOR: ${{ inputs.injiFlavor }}
|
||||
SERVICE_LOCATION: '.'
|
||||
IOS_SERVICE_LOCATION: 'ios'
|
||||
SCRIPT_NAME: "fastlane beta"
|
||||
IOS_ARTIFACT_NAME: "Inji"
|
||||
IOS_ARTIFACT_PATH: "ios/fastlane/Inji_app_file/Products/Applications/"
|
||||
secrets:
|
||||
APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
|
||||
DEVELOPER_APP_ID: '${{ secrets.IOS_INJI_DEVELOPER_APP_ID }}'
|
||||
INJI_IOS_DEVELOPER_APP_IDENTIFIER: '${{ secrets.INJI_IOS_DEVELOPER_APP_IDENTIFIER }}'
|
||||
INJI_IOS_DEVELOPER_PORTAL_TEAM_ID: '${{ secrets.INJI_IOS_DEVELOPER_PORTAL_TEAM_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_ID: '${{ secrets.INJI_IOS_FASTLANE_APPLE_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: '${{ secrets.INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
INJI_IOS_PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.INJI_IOS_PROVISIONING_PROFILE_SPECIFIER }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_PASSWORD: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_PASSWORD }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_USER: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
MATCH_PASSWORD: '${{ secrets.INJI_IOS_MATCH_PASSWORD }}'
|
||||
SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK }}'
|
||||
|
||||
# sonar-check:
|
||||
# uses: mosip/kattu/.github/workflows/gradlew-sonar-analysis.yml@master
|
||||
# with:
|
||||
# SERVICE_LOCATION: '.'
|
||||
# ANDROID_LOCATION: 'android'
|
||||
# SONAR_ARGS: -Dsonarqube
|
||||
# secrets:
|
||||
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
# SONAR_ORGANIZATION: ${{ secrets.ORG_KEY }}
|
||||
# SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK }}'
|
||||
72
.github/workflows/ios-automation-build.yml
vendored
72
.github/workflows/ios-automation-build.yml
vendored
@@ -1,72 +0,0 @@
|
||||
name: Inji iOS Automation Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
mimotoBackendServiceUrl:
|
||||
description: 'Mimoto backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
esignetBackendServiceUrl:
|
||||
description: 'Esignet backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
theme:
|
||||
description: 'Application Theme'
|
||||
required: true
|
||||
default: 'orange'
|
||||
type: choice
|
||||
options:
|
||||
- orange
|
||||
- purple
|
||||
registry_edit:
|
||||
description: 'Edit Registry'
|
||||
required: true
|
||||
default: 'true'
|
||||
type: choice
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
|
||||
jobs:
|
||||
build_ios:
|
||||
name: Uploading app to Actions
|
||||
runs-on: macos-13
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm install
|
||||
|
||||
- name: Install Pod
|
||||
run: |
|
||||
cd ios
|
||||
pod install
|
||||
pod install
|
||||
|
||||
- name: Build iOS for automation on simulator
|
||||
run: |
|
||||
cd ios
|
||||
fastlane build_app_for_automation_on_simulator
|
||||
|
||||
- name: Upload Inji.app artifact
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: Inji
|
||||
path: ios/fastlane/Inji_app_file/Products/Applications/
|
||||
retention-days: 7
|
||||
|
||||
- name: Upload Runner Log on Failure
|
||||
if: failure() # Only run this step if the previous steps failed
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: runner-log
|
||||
path: /Users/runner/Library/Logs/gym/
|
||||
retention-days: 1
|
||||
59
.github/workflows/ios-build-verify.yml
vendored
59
.github/workflows/ios-build-verify.yml
vendored
@@ -1,59 +0,0 @@
|
||||
name: PR - IOS build verification
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
- demobranch
|
||||
- qa-develop
|
||||
- 0.9
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
types: [ opened, synchronize ]
|
||||
branches:
|
||||
- develop
|
||||
- 'release-**'
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build_ios:
|
||||
name: Building the IPA
|
||||
runs-on: macos-13
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm install
|
||||
|
||||
- name: Install Pod
|
||||
run: |
|
||||
cd ios
|
||||
pod install
|
||||
|
||||
- name: Building the IPA
|
||||
run: |
|
||||
cd ios
|
||||
fastlane build_app_for_automation_on_simulator
|
||||
env:
|
||||
APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
|
||||
DEVELOPER_APP_ID: '${{ secrets.IOS_INJI_DEVELOPER_APP_ID }}'
|
||||
INJI_IOS_DEVELOPER_APP_IDENTIFIER: '${{ secrets.INJI_IOS_DEVELOPER_APP_IDENTIFIER }}'
|
||||
INJI_IOS_DEVELOPER_PORTAL_TEAM_ID: '${{ secrets.INJI_IOS_DEVELOPER_PORTAL_TEAM_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_ID: '${{ secrets.INJI_IOS_FASTLANE_APPLE_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: '${{ secrets.INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
INJI_IOS_PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.INJI_IOS_PROVISIONING_PROFILE_SPECIFIER }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_PASSWORD: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_PASSWORD }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_USER: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
MATCH_PASSWORD: '${{ secrets.INJI_IOS_MATCH_PASSWORD }}'
|
||||
103
.github/workflows/ios-build.yml
vendored
103
.github/workflows/ios-build.yml
vendored
@@ -1,103 +0,0 @@
|
||||
name: Inji iOS build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
mimotoBackendServiceUrl:
|
||||
description: 'Mimoto backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
esignetBackendServiceUrl:
|
||||
description: 'Esignet backend service URL'
|
||||
required: true
|
||||
default: 'https://api.sandbox.mosip.net'
|
||||
type: string
|
||||
theme:
|
||||
description: 'Application Theme'
|
||||
required: true
|
||||
default: 'orange'
|
||||
type: choice
|
||||
options:
|
||||
- orange
|
||||
- purple
|
||||
registry_edit:
|
||||
description: 'Edit Registry'
|
||||
required: true
|
||||
default: 'true'
|
||||
type: choice
|
||||
options:
|
||||
- false
|
||||
- true
|
||||
internal-testers:
|
||||
description: 'Internal Testers Group'
|
||||
required: true
|
||||
default: 'QA-Triple'
|
||||
type: choice
|
||||
options:
|
||||
- Dev-testing
|
||||
- MEC
|
||||
- QA
|
||||
- MOSIP-Collab
|
||||
- MOSIP-Dev-testing
|
||||
buildDescription:
|
||||
description: 'What to test'
|
||||
required: true
|
||||
default: 'QA-Triple environment build'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build_ios:
|
||||
name: Deploying to Testflight
|
||||
runs-on: macos-13
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm install
|
||||
|
||||
- name: Install Pod
|
||||
run: |
|
||||
cd ios
|
||||
pod install
|
||||
pod install
|
||||
|
||||
- name: Deploy iOS Beta to TestFlight
|
||||
run: |
|
||||
cd ios
|
||||
fastlane beta
|
||||
env:
|
||||
APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}'
|
||||
DEVELOPER_APP_ID: '${{ secrets.IOS_INJI_DEVELOPER_APP_ID }}'
|
||||
INJI_IOS_DEVELOPER_APP_IDENTIFIER: '${{ secrets.INJI_IOS_DEVELOPER_APP_IDENTIFIER }}'
|
||||
INJI_IOS_DEVELOPER_PORTAL_TEAM_ID: '${{ secrets.INJI_IOS_DEVELOPER_PORTAL_TEAM_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_ID: '${{ secrets.INJI_IOS_FASTLANE_APPLE_ID }}'
|
||||
INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: '${{ secrets.INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
INJI_IOS_PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.INJI_IOS_PROVISIONING_PROFILE_SPECIFIER }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_PASSWORD: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_PASSWORD }}'
|
||||
INJI_IOS_TEMP_KEYCHAIN_USER: '${{ secrets.INJI_IOS_TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
SLACK_URL: '${{ secrets.SLACK_WEBHOOK_DEVOPS }}'
|
||||
MATCH_PASSWORD: '${{ secrets.INJI_IOS_MATCH_PASSWORD }}'
|
||||
APPLICATION_THEME: ${{ github.event.inputs.theme }}
|
||||
CREDENTIAL_REGISTRY_EDIT: ${{ github.event.inputs.registry_edit }}
|
||||
MIMOTO_HOST: ${{ github.event.inputs.mimotoBackendServiceUrl }}
|
||||
ESIGNET_HOST: ${{ github.event.inputs.esignetBackendServiceUrl }}
|
||||
TESTFLIGHT_INTERNAL_TESTERS_GROUP: ${{ github.event.inputs.internal-testers }}
|
||||
TESTFLIGHT_BETA_APP_DESCRIPTION: ${{ github.event.inputs.buildDescription }}
|
||||
|
||||
- name: Upload Runner Log on Failure
|
||||
if: failure() # Only run this step if the previous steps failed
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: runner-log
|
||||
path: /Users/runner/Library/Logs/gym/
|
||||
retention-days: 1
|
||||
50
.github/workflows/push-triggers.yml
vendored
Normal file
50
.github/workflows/push-triggers.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
name: Push-Triggers
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
- qa-develop
|
||||
- 'release-**'
|
||||
release:
|
||||
types: [published]
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize]
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
- qa-develop
|
||||
- 'release-**'
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
uses: mosip/kattu/.github/workflows/android-build.yml@master
|
||||
with:
|
||||
NODE_VERSION: "16.x"
|
||||
DEBUG_KEYSTORE_ALIAS: androiddebugkey
|
||||
SERVICE_LOCATION: '.'
|
||||
ANDROID_SERVICE_LOCATION: 'android'
|
||||
BUILD_SCRIPT_LOCATION: 'scripts'
|
||||
SCRIPT_NAME: './android-build.sh'
|
||||
secrets:
|
||||
DEBUG_KEYSTORE_PASSWORD: '${{ secrets.INJI_ANDROID_DEBUG_STOREPASS }}'
|
||||
|
||||
build-ios:
|
||||
uses: mosip/kattu/.github/workflows/ios-build.yml@master
|
||||
with:
|
||||
NODE_VERSION: "18.x"
|
||||
SERVICE_LOCATION: '.'
|
||||
IOS_SERVICE_LOCATION: 'ios'
|
||||
SCRIPT_NAME: "fastlane ios_app_build"
|
||||
|
||||
# sonar-check:
|
||||
# if: ${{ github.event_name != 'pull_request' }}
|
||||
# uses: mosip/kattu/.github/workflows/gradlew-sonar-analysis.yml@master
|
||||
# with:
|
||||
# SERVICE_LOCATION: '.'
|
||||
# ANDROID_LOCATION: 'android'
|
||||
# secrets:
|
||||
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
# SONAR_ORGANIZATION: ${{ secrets.ORG_KEY }}
|
||||
# SLACK_WEBHOOK_URL: '${{ secrets.SLACK_WEBHOOK }}'
|
||||
30
.github/workflows/sonar.yml
vendored
30
.github/workflows/sonar.yml
vendored
@@ -1,30 +0,0 @@
|
||||
name: SonarQube checks
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3.1.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install npm dependencies
|
||||
run: |
|
||||
npm ci
|
||||
- uses: sonarsource/sonarqube-scan-action@master
|
||||
with:
|
||||
args:
|
||||
-Dsonar.organization=${{ secrets.ORG_KEY }}
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
SONAR_HOST_URL: https://sonarcloud.io
|
||||
SONAR_ORGANIZATION: ${{ secrets.ORG_KEY }}
|
||||
# If you wish to fail your job when the Quality Gate is red, uncomment the
|
||||
# following lines. This would typically be used to fail a deployment.
|
||||
# - uses: sonarsource/sonarqube-quality-gate-action@master
|
||||
# timeout-minutes: 5
|
||||
# env:
|
||||
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
35
.github/workflows/tag.yml
vendored
Normal file
35
.github/workflows/tag.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
name: Tagging of repos
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
TAG:
|
||||
description: "Tag to be published"
|
||||
required: true
|
||||
type: string
|
||||
BODY:
|
||||
description: "Release body message"
|
||||
required: true
|
||||
default: "Changes in this Release"
|
||||
type: string
|
||||
PRE_RELEASE:
|
||||
description: "Pre-release? True/False"
|
||||
required: true
|
||||
default: False
|
||||
type: string
|
||||
DRAFT:
|
||||
description: "Draft? True/False"
|
||||
required: false
|
||||
default: False
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
tag-branch:
|
||||
uses: mosip/kattu/.github/workflows/tag.yml@master
|
||||
with:
|
||||
TAG: ${{ inputs.TAG }}
|
||||
BODY: ${{ inputs.BODY }}
|
||||
PRE_RELEASE: ${{ inputs.PRE_RELEASE }}
|
||||
DRAFT: ${{ inputs.DRAFT }}
|
||||
secrets:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
|
||||
13
.talismanrc
13
.talismanrc
@@ -1,8 +1,8 @@
|
||||
fileignoreconfig:
|
||||
- filename: package.json
|
||||
checksum: a5a22604f2b9d917adaf3561fdcaeccd4e69b92e1240070480d7498e1eda5162
|
||||
checksum: 984f91af6d696faf934f7e541801343e146aed1b58d7c950ba11ec02dbd60dda
|
||||
- filename: package-lock.json
|
||||
checksum: 7e8bc0fa27b4eca3b7a825bccdef88ef1c9e7932a5d9af0e5feca2d42d72703b
|
||||
checksum: c16e22cf137c123d7f1b1b95758646fc839dc1fa16f7cf74dff3124174475e13
|
||||
- filename: lib/jsonld-signatures/suites/ed255192018/ed25519.ts
|
||||
checksum: 493b6e31144116cb612c24d98b97d8adcad5609c0a52c865a6847ced0a0ddc3a
|
||||
- filename: components/PasscodeVerify.tsx
|
||||
@@ -67,8 +67,6 @@ fileignoreconfig:
|
||||
checksum: c5de3d912e2cbd55f6898e2f4a24413abbee8f084c99ea11ce6265504a520ce0
|
||||
- filename: android/fastlane/Fastfile
|
||||
checksum: 41d1409adf8df9c843fd2dba89142cd55c471f3060ced57d48ee96dc8793ffcd
|
||||
- filename: package.json
|
||||
checksum: b982af1813bb72625c63eb31b3d0a6c0d970cd669d57649cc0ac9358252e3cd3
|
||||
- filename: machines/VCItemMachine/EsignetMosipVCItem/EsignetMosipVCItemMachine.typegen.ts
|
||||
checksum: 15308987b1aab0c51c96bfc646ae55a3d7ae728a1f6e03ab31d5e1b786da03eb
|
||||
- filename: machines/VCItemMachine/ExistingMosipVCItem/ExistingMosipVCItemMachine.typegen.ts
|
||||
@@ -76,21 +74,16 @@ fileignoreconfig:
|
||||
- filename: shared/telemetry/TelemetryUtils.js
|
||||
checksum: a0686e9a5c006176fd720b84bc36ca947db1422caf65c90cd0c2d1102a9e96df
|
||||
- filename: ios/fastlane/Fastfile
|
||||
checksum: feea5a7f044ef6961d53e7d1e1ffb92a3e0f72761496424f6e64288e3718d605
|
||||
checksum: 78edb7772ca7bf64fc0c603cb82771c793e03afff37ccbbfd1b9f578ec0e5369
|
||||
- filename: machines/bleShare/scan/scanMachine.ts
|
||||
checksum: a514c958ca3da3c5b22a1a95ad680af8f05fb22638fab79b3842aa8fcc1b4a17
|
||||
version: ''
|
||||
- filename: locales/spa.json
|
||||
checksum: eac9685c6b205ece5759e414669d27ad7ce383453d7b5e7d9f5ce75d290cc860
|
||||
version: ''
|
||||
- filename: screens/PasscodeScreen.tsx
|
||||
checksum: 5d3003027b245234f8c00bfc98836f1fb90a5d9525ffacf61c53f3d50954aa6a
|
||||
version: ''
|
||||
- filename: screens/PasscodeScreen.tsx
|
||||
checksum: 3330b9db9cfce407782e82b4fe3c0b60a9ecb0f9327af2b69971e254f9e52921
|
||||
version: ''
|
||||
- filename: screens/Home/MyVcs/OtpVerificationModal.tsx
|
||||
checksum: a99fe136d9d1348c541d413324d266e179ecad6a1fe6b6bd1e0b2856a5a6d6b5
|
||||
- filename: screens/QrLogin/QrConsent.tsx
|
||||
checksum: 8563a194a4d38814eff670f0652d1a7af77134cafb350462174b4f147dbd890d
|
||||
version: ''
|
||||
|
||||
@@ -4,6 +4,7 @@ plugins {
|
||||
|
||||
apply plugin: "com.android.application"
|
||||
apply plugin: "com.facebook.react"
|
||||
apply plugin: "org.sonarqube"
|
||||
|
||||
react {
|
||||
/* Folders */
|
||||
@@ -95,12 +96,9 @@ android {
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
|
||||
ext {
|
||||
APP_NAME_RELEASE = "@string/app_name"
|
||||
APP_NAME_MOSIP = "@string/app_name_mosip"
|
||||
APP_NAME_BETA = "@string/app_name_beta"
|
||||
APP_NAME= "@string/app_name"
|
||||
}
|
||||
|
||||
|
||||
namespace 'io.mosip.residentapp'
|
||||
|
||||
defaultConfig {
|
||||
@@ -110,14 +108,12 @@ android {
|
||||
versionName androidGitVersion.name()
|
||||
versionCode 1
|
||||
|
||||
Properties properties = new Properties()
|
||||
properties.load(project.rootProject.file('local.properties').newDataInputStream())
|
||||
|
||||
manifestPlaceholders = [
|
||||
APP_NAME: APP_NAME_RELEASE,
|
||||
APP_NAME: APP_NAME,
|
||||
appAuthRedirectScheme: 'io.mosip.residentapp.inji'
|
||||
]
|
||||
}
|
||||
|
||||
splits {
|
||||
abi {
|
||||
reset()
|
||||
@@ -129,26 +125,53 @@ android {
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
def keystore = file('release.keystore')
|
||||
def keystoreAlias = System.getenv("RELEASE_KEYSTORE_ALIAS")
|
||||
def keystorePass = System.getenv("RELEASE_KEYSTORE_PASSWORD")
|
||||
// for sonarqube job we will generate dummy release keystore to sign the app as we are not doing it in workflow
|
||||
def hasSonarqube = System.properties.containsKey("sonarqube")
|
||||
def keystore = file('release.keystore').exists() ? file('release.keystore') : file('dummyrelease.keystore')
|
||||
storeFile file("$keystore")
|
||||
storePassword "$keystorePass"
|
||||
keyAlias "$keystoreAlias"
|
||||
keyPassword "$keystorePass"
|
||||
if (hasSonarqube && !keystore.exists() ) {
|
||||
exec {
|
||||
commandLine 'keytool',
|
||||
'-genkey',
|
||||
'-v',
|
||||
'-storetype', 'PKCS12',
|
||||
'-keyalg', 'RSA',
|
||||
'-keysize', '2048',
|
||||
'-validity', '10000',
|
||||
'-storepass', 'password',
|
||||
'-keypass', 'password',
|
||||
'-alias', 'androidreleasekey',
|
||||
'-keystore', 'dummyrelease.keystore',
|
||||
'-dname', 'CN=,OU=,O=,L=,S=,C=US'
|
||||
}
|
||||
storePassword "password"
|
||||
keyAlias "androidreleasekey"
|
||||
keyPassword "password"
|
||||
}
|
||||
else{
|
||||
def keystoreAlias = System.getenv("RELEASE_KEYSTORE_ALIAS")
|
||||
def keystorePass = System.getenv("RELEASE_KEYSTORE_PASSWORD")
|
||||
storePassword "$keystorePass"
|
||||
keyAlias "$keystoreAlias"
|
||||
keyPassword "$keystorePass"
|
||||
}
|
||||
v2SigningEnabled true
|
||||
v1SigningEnabled false
|
||||
}
|
||||
debug {
|
||||
def keystore = file('debug.keystore')
|
||||
def keystoreAlias = System.getenv("DEBUG_KEYSTORE_ALIAS")
|
||||
def keystorePass = System.getenv("DEBUG_KEYSTORE_PASSWORD")
|
||||
storeFile file("$keystore")
|
||||
storePassword "$keystorePass"
|
||||
keyAlias "$keystoreAlias"
|
||||
keyPassword "$keystorePass"
|
||||
v2SigningEnabled true
|
||||
v1SigningEnabled false
|
||||
if (keystore.exists()) {
|
||||
def keystoreAlias = System.getenv("DEBUG_KEYSTORE_ALIAS")
|
||||
def keystorePass = System.getenv("DEBUG_KEYSTORE_PASSWORD")
|
||||
storeFile file("$keystore")
|
||||
storePassword "$keystorePass"
|
||||
keyAlias "$keystoreAlias"
|
||||
keyPassword "$keystorePass"
|
||||
v2SigningEnabled true
|
||||
v1SigningEnabled false
|
||||
}else {
|
||||
android.buildTypes.debug.signingConfig = null
|
||||
}
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
@@ -171,19 +194,34 @@ android {
|
||||
flavorDimensions "inji"
|
||||
|
||||
productFlavors {
|
||||
mosip {
|
||||
residentapp {
|
||||
versionName defaultConfig.versionName
|
||||
manifestPlaceholders = [
|
||||
APP_NAME: APP_NAME_MOSIP
|
||||
]
|
||||
dimension "inji"
|
||||
resValue "string", "app_name", "Inji"
|
||||
}
|
||||
beta {
|
||||
inji {
|
||||
applicationId "io.mosip.inji.wallet"
|
||||
versionName defaultConfig.versionName
|
||||
manifestPlaceholders = [
|
||||
APP_NAME: APP_NAME_BETA
|
||||
]
|
||||
dimension "inji"
|
||||
resValue "string", "app_name", "Inji Wallet"
|
||||
}
|
||||
collab {
|
||||
applicationId "io.mosip.inji.collab"
|
||||
versionName defaultConfig.versionName
|
||||
dimension "inji"
|
||||
resValue "string", "app_name", "Inji Wallet Collab"
|
||||
}
|
||||
synergy {
|
||||
applicationId "io.mosip.inji.synergy"
|
||||
versionName defaultConfig.versionName
|
||||
dimension "inji"
|
||||
resValue "string", "app_name", "Inji Wallet Synergy"
|
||||
}
|
||||
mec {
|
||||
applicationId "io.mosip.inji.mec"
|
||||
versionName defaultConfig.versionName
|
||||
dimension "inji"
|
||||
resValue "string", "app_name", "Inji Wallet Mec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +229,17 @@ android {
|
||||
variant.outputs.all { output ->
|
||||
def datetime = new Date().format('yyyyMMdd_HHmm')
|
||||
def architecture = output.getFilter(com.android.build.OutputFile.ABI) ?: "universal"
|
||||
outputFileName = "Inji_${variant.versionName}_${datetime}_${architecture}.apk"
|
||||
outputFileName = "Inji_${architecture}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
variant.outputs.all { output ->
|
||||
if (variant.flavorName == "collab") {
|
||||
sonarqube {
|
||||
androidVariant variant.name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -248,4 +296,4 @@ dependencies {
|
||||
}
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
apply from: "./eas-build.gradle"
|
||||
apply from: "./eas-build.gradle"
|
||||
@@ -1,8 +1,4 @@
|
||||
<resources>
|
||||
<string name="app_name">Inji</string>
|
||||
<string name="app_name_mosip">MOSIP Resident App - Mosip/Inji</string>
|
||||
<string name="app_name_newlogic">MOSIP Resident App - Newlogic</string>
|
||||
<string name="app_name_ph">MOSIP Resident App - PH</string>
|
||||
<string name="expo_splash_screen_resize_mode" translatable="false">cover</string>
|
||||
<string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
|
||||
<string name="ExpoLocalization_supportsRTL" translatable="false">undefined</string>
|
||||
|
||||
@@ -18,6 +18,7 @@ buildscript {
|
||||
dependencies {
|
||||
classpath("com.android.tools.build:gradle:7.3.1")
|
||||
classpath("com.facebook.react:react-native-gradle-plugin")
|
||||
classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,22 +4,56 @@ MIMOTO_HOST = ENV["MIMOTO_HOST"]
|
||||
ESIGNET_HOST = ENV["ESIGNET_HOST"]
|
||||
APPLICATION_THEME = ENV["APPLICATION_THEME"]
|
||||
RELEASE_KEYSTORE_ALIAS = ENV["RELEASE_KEYSTORE_ALIAS"]
|
||||
DEBUG_KEYSTORE_ALIAS = ENV["DEBUG_KEYSTORE_ALIAS"]
|
||||
RELEASE_KEYSTORE_PASSWORD = ENV["RELEASE_KEYSTORE_PASSWORD"]
|
||||
PLAY_CONSOLE_RELEASE_DESCRIPTION = ENV["PLAY_CONSOLE_RELEASE_DESCRIPTION"]
|
||||
SLACK_URL = ENV["SLACK_URL"]
|
||||
DEBUG_KEYSTORE_PASSWORD = ENV["DEBUG_KEYSTORE_PASSWORD"]
|
||||
PLAY_CONSOLE_RELEASE_DESCRIPTION = ENV["BUILD_DESCRIPTION"]
|
||||
SLACK_URL = ENV["SLACK_WEBHOOK_URL"]
|
||||
CREDENTIAL_REGISTRY_EDIT = ENV["CREDENTIAL_REGISTRY_EDIT"]
|
||||
APP_FLAVOR = ENV["APP_FLAVOR"]
|
||||
|
||||
def generate_app_bundle_id()
|
||||
flavor = APP_FLAVOR
|
||||
case flavor
|
||||
when "residentapp"
|
||||
return "io.mosip.residentapp"
|
||||
when "inji"
|
||||
return "io.mosip.inji.wallet"
|
||||
when "collab"
|
||||
return "io.mosip.inji.collab"
|
||||
when "synergy"
|
||||
return "io.mosip.inji.synergy"
|
||||
when "mec"
|
||||
return "io.mosip.inji.mec"
|
||||
end
|
||||
end
|
||||
|
||||
def generate_app_name()
|
||||
flavor = APP_FLAVOR
|
||||
case flavor
|
||||
when "residentapp"
|
||||
return "Inji"
|
||||
when "inji"
|
||||
return "Inji Wallet"
|
||||
when "collab"
|
||||
return "Inji Wallet Collab"
|
||||
when "synergy"
|
||||
return "Inji Wallet Synergy"
|
||||
when "mec"
|
||||
return "Inji Wallet Mec"
|
||||
end
|
||||
end
|
||||
|
||||
desc "Verify Build for Android"
|
||||
lane :android_build_verify do
|
||||
gradle(
|
||||
task: "assembleMosipDebug",
|
||||
)
|
||||
lane :android_build do
|
||||
gradle(task: "assemble#{APP_FLAVOR}Debug")
|
||||
end
|
||||
|
||||
desc "Deploy an Internal testing version to the Google Play"
|
||||
lane :android_build_internal do
|
||||
|
||||
previous_build_number = google_play_track_version_codes(
|
||||
package_name: "io.mosip.residentapp",
|
||||
package_name: generate_app_bundle_id,
|
||||
track: "internal",
|
||||
json_key: "play_config.json",
|
||||
)[0]
|
||||
@@ -36,15 +70,16 @@ lane :android_build_internal do
|
||||
|
||||
versionName = "#{git_commit}-#{git_branch}"
|
||||
|
||||
gradle(task: "clean bundleMosipRelease")
|
||||
gradle(task: "clean bundle#{APP_FLAVOR}Release")
|
||||
upload_to_play_store(
|
||||
track: 'internal',
|
||||
release_status: 'completed',
|
||||
version_name: versionName,
|
||||
package_name: generate_app_bundle_id,
|
||||
)
|
||||
|
||||
slack(
|
||||
message: "Inji - #{versionName} (#{current_build_number}) is uploaded to Play store. Description : #{PLAY_CONSOLE_RELEASE_DESCRIPTION}.",
|
||||
message: "#{generate_app_name} #{versionName} (#{current_build_number}) is uploaded to Play store. Description : #{PLAY_CONSOLE_RELEASE_DESCRIPTION}.",
|
||||
success: true,
|
||||
slack_url: "#{SLACK_URL}",
|
||||
default_payloads: [:git_branch, :last_git_commit]
|
||||
@@ -69,17 +104,18 @@ lane :android_build_beta do
|
||||
version_code: versionCode
|
||||
)
|
||||
|
||||
versionName = "Inji #{git_tag}"
|
||||
versionName = "#{generate_app_name} #{git_tag}"
|
||||
|
||||
gradle(task: "clean bundleBetaRelease")
|
||||
gradle(task: "clean bundle#{APP_FLAVOR}Release")
|
||||
upload_to_play_store(
|
||||
track: 'alpha',
|
||||
release_status: 'completed',
|
||||
version_name: versionName,
|
||||
package_name: generate_app_bundle_id,
|
||||
)
|
||||
|
||||
slack(
|
||||
message: "Inji [Beta]- #{versionName} is uploaded to Play store. Description : #{PLAY_CONSOLE_RELEASE_DESCRIPTION}.",
|
||||
message: "#{generate_app_name} #{versionName} is uploaded to Play store. Description : #{PLAY_CONSOLE_RELEASE_DESCRIPTION}.",
|
||||
success: true,
|
||||
slack_url: "#{SLACK_URL}",
|
||||
default_payloads: [:git_branch, :last_git_commit]
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
|
||||
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
@@ -57,4 +57,5 @@ newArchEnabled=false
|
||||
# If set to false, you will be using JSC instead.
|
||||
hermesEnabled=true
|
||||
|
||||
expo.jsEngine=hermes
|
||||
expo.jsEngine=hermes
|
||||
org.gradle.jvmargs=-Xmx4096m
|
||||
@@ -7,4 +7,4 @@ yes | sudo gem install bundler
|
||||
|
||||
yes | sudo fastlane install_plugins
|
||||
|
||||
bundle exec fastlane android_build_verify
|
||||
bundle exec fastlane android_build
|
||||
@@ -361,7 +361,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 0.9.1;
|
||||
MARKETING_VERSION = 0.10.0;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -398,7 +398,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 0.9.1;
|
||||
MARKETING_VERSION = 0.10.0;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -557,4 +557,4 @@
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
app_identifier(ENV["INJI_IOS_DEVELOPER_APP_IDENTIFIER"]) # The bundle identifier of your app
|
||||
apple_id(ENV["IOS_FASTLANE_APPLE_ID"]) # Your Apple Developer Portal username
|
||||
apple_id(ENV["INJI_IOS_FASTLANE_APPLE_ID"]) # Your Apple Developer Portal username
|
||||
|
||||
itc_team_id(ENV["APP_STORE_CONNECT_TEAM_ID"]) # App Store Connect Team ID
|
||||
team_id(ENV["INJI_IOS_DEVELOPER_PORTAL_TEAM_ID"]) # Developer Portal Team ID
|
||||
team_id(ENV["INJI_IOS_DEVELOPER_PORTAL_TEAM_ID"]) # Developer Portal Team ID
|
||||
@@ -5,7 +5,6 @@ APP_STORE_CONNECT_TEAM_ID = ENV["APP_STORE_CONNECT_TEAM_ID"]
|
||||
APPLE_ISSUER_ID = ENV["APPLE_ISSUER_ID"]
|
||||
APPLE_KEY_CONTENT = ENV["APPLE_KEY_CONTENT"]
|
||||
APPLE_KEY_ID = ENV["APPLE_KEY_ID"]
|
||||
DEVELOPER_APP_IDENTIFIER = ENV["INJI_IOS_DEVELOPER_APP_IDENTIFIER"]
|
||||
TEAM_ID = ENV["INJI_IOS_DEVELOPER_PORTAL_TEAM_ID"]
|
||||
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD = ENV["INJI_IOS_FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"]
|
||||
FASTLANE_USER= ENV["IOS_FASTLANE_APPLE_ID"]
|
||||
@@ -13,12 +12,62 @@ PROVISIONING_PROFILE_SPECIFIER = ENV["INJI_IOS_PROVISIONING_PROFILE_SPECIFIER"]
|
||||
TEMP_KEYCHAIN_USER = ENV["INJI_IOS_TEMP_KEYCHAIN_USER"]
|
||||
TEMP_KEYCHAIN_PASSWORD = ENV["INJI_IOS_TEMP_KEYCHAIN_PASSWORD"]
|
||||
GIT_AUTHORIZATION = ENV["GIT_AUTHORIZATION"]
|
||||
SLACK_URL = ENV["SLACK_URL"]
|
||||
SLACK_URL = ENV["SLACK_WEBHOOK_URL"]
|
||||
APP_FLAVOR = ENV["APP_FLAVOR"]
|
||||
MATCH_PASSWORD = ENV["MATCH_PASSWORD"]
|
||||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT = "120"
|
||||
TESTFLIGHT_INTERNAL_TESTERS_GROUP = ENV["TESTFLIGHT_INTERNAL_TESTERS_GROUP"]
|
||||
TESTFLIGHT_BETA_APP_DESCRIPTION = ENV["TESTFLIGHT_BETA_APP_DESCRIPTION"]
|
||||
TESTFLIGHT_INTERNAL_TESTERS_GROUP = ENV["TESTFLIGHT_INTERNAL_TESTERS_GROUP"]
|
||||
TESTFLIGHT_BETA_APP_DESCRIPTION = ENV["TESTFLIGHT_BETA_APP_DESCRIPTION"]
|
||||
DEVELOPER_APP_ID = ENV["DEVELOPER_APP_ID"]
|
||||
MIMOTO_HOST = ENV["MIMOTO_HOST"]
|
||||
ESIGNET_HOST = ENV["ESIGNET_HOST"]
|
||||
APPLICATION_THEME = ENV["APPLICATION_THEME"]
|
||||
CREDENTIAL_REGISTRY_EDIT = ENV["CREDENTIAL_REGISTRY_EDIT"]
|
||||
|
||||
def generate_app_bundle_id()
|
||||
flavor = APP_FLAVOR
|
||||
case flavor
|
||||
when "residentapp"
|
||||
# the old app flavor
|
||||
return "io.mosip.inji.mobileid"
|
||||
when "inji"
|
||||
# io.mosip.inji is not available in iOS
|
||||
return "io.mosip.inji.wallet"
|
||||
when "collab"
|
||||
return "io.mosip.inji.collab"
|
||||
when "synergy"
|
||||
return "io.mosip.inji.synergy"
|
||||
when "mec"
|
||||
return "io.mosip.inji.mec"
|
||||
end
|
||||
end
|
||||
|
||||
def map_flavour_tosuffix()
|
||||
flavor = APP_FLAVOR
|
||||
case flavor
|
||||
when "residentapp"
|
||||
return "mobileid"
|
||||
when "inji"
|
||||
return "wallet"
|
||||
end
|
||||
return flavor
|
||||
end
|
||||
|
||||
def generate_app_name()
|
||||
flavor = APP_FLAVOR
|
||||
case flavor
|
||||
when "residentapp"
|
||||
return "Inji"
|
||||
when "inji"
|
||||
return "Inji Wallet"
|
||||
when "collab"
|
||||
return "Inji Wallet Collab"
|
||||
when "synergy"
|
||||
return "Inji Wallet Synergy"
|
||||
when "mec"
|
||||
return "Inji Wallet Mec"
|
||||
end
|
||||
end
|
||||
|
||||
def delete_temp_keychain(name)
|
||||
delete_keychain(
|
||||
@@ -39,10 +88,9 @@ def ensure_temp_keychain(name, password)
|
||||
delete_temp_keychain(name)
|
||||
create_temp_keychain(name, password)
|
||||
end
|
||||
|
||||
|
||||
|
||||
platform :ios do
|
||||
|
||||
lane :beta do
|
||||
keychain_name = TEMP_KEYCHAIN_USER
|
||||
keychain_password = TEMP_KEYCHAIN_PASSWORD
|
||||
@@ -51,8 +99,8 @@ platform :ios do
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: "#{APPLE_KEY_ID}",
|
||||
issuer_id: "#{APPLE_ISSUER_ID}",
|
||||
key_content: "#{APPLE_KEY_CONTENT}",
|
||||
duration: 1200,
|
||||
key_content: "#{APPLE_KEY_CONTENT}",
|
||||
duration: 1200,
|
||||
in_house: false,
|
||||
is_key_content_base64: true
|
||||
)
|
||||
@@ -60,7 +108,7 @@ platform :ios do
|
||||
version = get_version_number(xcodeproj: "Inji.xcodeproj")
|
||||
|
||||
previous_build_number = latest_testflight_build_number(
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
app_identifier: "#{generate_app_bundle_id}",
|
||||
api_key: api_key,
|
||||
version: version
|
||||
)
|
||||
@@ -68,13 +116,31 @@ platform :ios do
|
||||
current_build_number = previous_build_number + 1
|
||||
|
||||
increment_build_number(
|
||||
xcodeproj: "Inji.xcodeproj",
|
||||
xcodeproj: "Inji.xcodeproj",
|
||||
build_number: current_build_number
|
||||
)
|
||||
|
||||
update_app_identifier(
|
||||
app_identifier: "#{generate_app_bundle_id}",
|
||||
plist_path: "Inji/Info.plist"
|
||||
)
|
||||
# replace bundle ID
|
||||
s = "s/mobileid/#{map_flavour_tosuffix}/g"
|
||||
sh("sed -i '' -e #{s} ../Inji.xcodeproj/project.pbxproj")
|
||||
|
||||
# replace Product name
|
||||
p = "s|PRODUCT_NAME = Inji|PRODUCT_NAME = \"#{generate_app_name}\"|"
|
||||
sh ("sed -i '' -e '#{p}' ../Inji.xcodeproj/project.pbxproj")
|
||||
|
||||
# update app display name
|
||||
update_info_plist(
|
||||
plist_path: 'Inji/Info.plist',
|
||||
display_name: "#{generate_app_name}"
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
app_identifier: "#{generate_app_bundle_id}",
|
||||
git_basic_authorization: Base64.strict_encode64("#{GIT_AUTHORIZATION}"),
|
||||
readonly: false,
|
||||
keychain_name: keychain_name,
|
||||
@@ -83,7 +149,6 @@ platform :ios do
|
||||
)
|
||||
|
||||
profile_mapping = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING]
|
||||
|
||||
gym(
|
||||
configuration: "Release",
|
||||
workspace: "Inji.xcworkspace",
|
||||
@@ -91,20 +156,20 @@ platform :ios do
|
||||
export_method: "app-store",
|
||||
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_ID}" => "#{PROVISIONING_PROFILE_SPECIFIER}"
|
||||
provisioningProfiles: {
|
||||
"#{generate_app_bundle_id}" => "match AppStore #{generate_app_bundle_id}"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
pilot(
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
app_identifier: "#{generate_app_bundle_id}",
|
||||
api_key: api_key,
|
||||
ipa: "./Inji.ipa",
|
||||
ipa: "./#{generate_app_name}.ipa",
|
||||
changelog: "#{TESTFLIGHT_BETA_APP_DESCRIPTION}",
|
||||
localized_build_info: {
|
||||
"default": {
|
||||
whats_new: "#{TESTFLIGHT_BETA_APP_DESCRIPTION}",
|
||||
whats_new: "#{TESTFLIGHT_BETA_APP_DESCRIPTION}",
|
||||
}
|
||||
},
|
||||
skip_waiting_for_build_processing: false,
|
||||
@@ -115,51 +180,6 @@ platform :ios do
|
||||
|
||||
delete_temp_keychain(keychain_name)
|
||||
|
||||
slack(
|
||||
message: "Inji - #{version} (#{current_build_number}) is uploaded to testflight.",
|
||||
success: true,
|
||||
slack_url: "#{SLACK_URL}",
|
||||
default_payloads: [:git_branch, :last_git_commit]
|
||||
)
|
||||
end
|
||||
|
||||
lane :build_verify do
|
||||
keychain_name = TEMP_KEYCHAIN_USER
|
||||
keychain_password = TEMP_KEYCHAIN_PASSWORD
|
||||
ensure_temp_keychain(keychain_name, keychain_password)
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: "#{APPLE_KEY_ID}",
|
||||
issuer_id: "#{APPLE_ISSUER_ID}",
|
||||
key_content: "#{APPLE_KEY_CONTENT}",
|
||||
duration: 1200,
|
||||
in_house: false,
|
||||
is_key_content_base64: true
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
git_basic_authorization: Base64.strict_encode64("#{GIT_AUTHORIZATION}"),
|
||||
readonly: false,
|
||||
keychain_name: keychain_name,
|
||||
keychain_password: keychain_password,
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
gym(
|
||||
configuration: "Release",
|
||||
workspace: "Inji.xcworkspace",
|
||||
scheme: "Inji",
|
||||
export_method: "app-store",
|
||||
)
|
||||
|
||||
delete_temp_keychain(keychain_name)
|
||||
|
||||
end
|
||||
|
||||
lane :build_app_for_automation_on_simulator do
|
||||
|
||||
custom_output_directory = "./Inji_app_file"
|
||||
sh("mkdir -p '#{custom_output_directory}'")
|
||||
|
||||
@@ -170,8 +190,27 @@ platform :ios do
|
||||
build_path: "./build",
|
||||
)
|
||||
|
||||
|
||||
find_command = "find '../build/' -type d -name 'Products'"
|
||||
app_path = sh(find_command, log: false).strip
|
||||
sh("cp -R '#{app_path}' '#{custom_output_directory}'")
|
||||
|
||||
slack(
|
||||
message: "#{generate_app_name} #{version} (#{current_build_number}) is uploaded to testflight.",
|
||||
success: true,
|
||||
slack_url: "#{SLACK_URL}",
|
||||
default_payloads: [:git_branch, :last_git_commit]
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
lane :ios_app_build do
|
||||
|
||||
archive_path = gym(
|
||||
skip_package_ipa: true,
|
||||
destination: "generic/platform=iOS Simulator",
|
||||
configuration: "Release",
|
||||
build_path: "./build",
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
27
package-lock.json
generated
27
package-lock.json
generated
@@ -72,11 +72,11 @@
|
||||
"react-native-safe-area-context": "4.5.0",
|
||||
"react-native-screens": "~3.20.0",
|
||||
"react-native-secure-key-store": "^2.0.10",
|
||||
"react-native-secure-keystore": "github:mosip/secure-keystore#v0.1.1",
|
||||
"react-native-secure-keystore": "github:mosip/secure-keystore#v0.1.2",
|
||||
"react-native-securerandom": "^1.0.1",
|
||||
"react-native-spinkit": "^1.5.1",
|
||||
"react-native-svg": "13.4.0",
|
||||
"react-native-tuvali": "github:mosip/tuvali#v0.4.5",
|
||||
"react-native-tuvali": "github:mosip/tuvali#0.4.6",
|
||||
"react-native-vector-icons": "^10.0.0",
|
||||
"short-unique-id": "^4.4.4",
|
||||
"simple-pem2jwk": "^0.2.4",
|
||||
@@ -24861,8 +24861,9 @@
|
||||
"integrity": "sha512-K7aVlIGxyklnjhCidVexVgZF3LsgUD9GIxMy2NB/xkQsS9E2SJWkD/fJ56e25L2I6a9Mp1zuJrKnCtfBs1CvAw=="
|
||||
},
|
||||
"node_modules/react-native-secure-keystore": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "git+ssh://git@github.com/mosip/secure-keystore.git#0d3a3d06e2ff49be698eb98fee4c5a5091be218f",
|
||||
"name": "mosip-react-native-secure-keystore",
|
||||
"version": "0.1.2",
|
||||
"resolved": "git+ssh://git@github.com/mosip/secure-keystore.git#ce58f8f548f352960993cb9ded1015287c6361b6",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
@@ -24926,8 +24927,8 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-tuvali": {
|
||||
"version": "0.4.5",
|
||||
"resolved": "git+ssh://git@github.com/mosip/tuvali.git#6a2c22e9c75734bdbc8260344fe15d9df98e1ff0",
|
||||
"version": "0.4.6",
|
||||
"resolved": "git+ssh://git@github.com/mosip/tuvali.git#9c5df99beffc43a8f5fbcf7bd12d0ff68ed2136f",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
@@ -30995,7 +30996,7 @@
|
||||
"bs58": "^4.0.1",
|
||||
"crypto-ld": "^4.0.2",
|
||||
"esm": "^3.2.25",
|
||||
"node-forge": "^1.3.1",
|
||||
"node-forge": "~0.9.1",
|
||||
"semver": "^7.3.2",
|
||||
"sodium-native": "^3.1.1"
|
||||
},
|
||||
@@ -31336,7 +31337,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
|
||||
"integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
|
||||
"requires": {
|
||||
"node-forge": "^1.3.1",
|
||||
"node-forge": "^1.2.1",
|
||||
"nullthrows": "^1.1.1"
|
||||
}
|
||||
},
|
||||
@@ -45913,7 +45914,7 @@
|
||||
"es6-promise": "^4.2.8",
|
||||
"lodash": "^4.17.21",
|
||||
"long": "^5.2.0",
|
||||
"node-forge": "^1.3.1",
|
||||
"node-forge": "^1.2.1",
|
||||
"pako": "^2.0.4",
|
||||
"process": "^0.11.10",
|
||||
"uuid": "^9.0.0"
|
||||
@@ -47635,8 +47636,8 @@
|
||||
"integrity": "sha512-K7aVlIGxyklnjhCidVexVgZF3LsgUD9GIxMy2NB/xkQsS9E2SJWkD/fJ56e25L2I6a9Mp1zuJrKnCtfBs1CvAw=="
|
||||
},
|
||||
"react-native-secure-keystore": {
|
||||
"version": "git+ssh://git@github.com/mosip/secure-keystore.git#0d3a3d06e2ff49be698eb98fee4c5a5091be218f",
|
||||
"from": "react-native-secure-keystore@github:mosip/secure-keystore#v0.1.1",
|
||||
"version": "git+ssh://git@github.com/mosip/secure-keystore.git#ce58f8f548f352960993cb9ded1015287c6361b6",
|
||||
"from": "react-native-secure-keystore@github:mosip/secure-keystore#v0.1.2",
|
||||
"requires": {}
|
||||
},
|
||||
"react-native-securerandom": {
|
||||
@@ -47683,8 +47684,8 @@
|
||||
}
|
||||
},
|
||||
"react-native-tuvali": {
|
||||
"version": "git+ssh://git@github.com/mosip/tuvali.git#6a2c22e9c75734bdbc8260344fe15d9df98e1ff0",
|
||||
"from": "react-native-tuvali@github:mosip/tuvali#v0.4.5",
|
||||
"version": "git+ssh://git@github.com/mosip/tuvali.git#9c5df99beffc43a8f5fbcf7bd12d0ff68ed2136f",
|
||||
"from": "react-native-tuvali@github:mosip/tuvali#0.4.6",
|
||||
"requires": {}
|
||||
},
|
||||
"react-native-url-polyfill": {
|
||||
|
||||
10
package.json
10
package.json
@@ -3,9 +3,9 @@
|
||||
"prepare": "husky install",
|
||||
"jetify": "jetify",
|
||||
"start": "react-native start",
|
||||
"android:mosip": "react-native run-android --variant=mosipDebug",
|
||||
"android:mosip": "react-native run-android --variant=residentappDebug",
|
||||
"ios": "react-native run-ios",
|
||||
"build:android:mosip": "cd android && ./gradlew :app:assembleMosipRelease && cd ..",
|
||||
"build:android:mosip": "cd android && ./gradlew :app:assembleResidentappRelease && cd ..",
|
||||
"lint": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
|
||||
"test": "jest",
|
||||
"postinstall": "patch-package && npm run jetify && sh tools/talisman/talisman-precommit.sh"
|
||||
@@ -74,11 +74,11 @@
|
||||
"react-native-safe-area-context": "4.5.0",
|
||||
"react-native-screens": "~3.20.0",
|
||||
"react-native-secure-key-store": "^2.0.10",
|
||||
"react-native-secure-keystore": "github:mosip/secure-keystore#v0.1.1",
|
||||
"react-native-secure-keystore": "github:mosip/secure-keystore#v0.1.2",
|
||||
"react-native-securerandom": "^1.0.1",
|
||||
"react-native-spinkit": "^1.5.1",
|
||||
"react-native-svg": "13.4.0",
|
||||
"react-native-tuvali": "github:mosip/tuvali#v0.4.5",
|
||||
"react-native-tuvali": "github:mosip/tuvali#0.4.6",
|
||||
"react-native-vector-icons": "^10.0.0",
|
||||
"short-unique-id": "^4.4.4",
|
||||
"simple-pem2jwk": "^0.2.4",
|
||||
@@ -130,4 +130,4 @@
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
sonar.projectKey=mosip_inji
|
||||
sonar.organization=mosip
|
||||
sonar.exclusions=.github/**, .vscode/**, android/**, assets/**, build/**, ios/**, node_modules/**, scripts/**
|
||||
|
||||
sonar.exclusions=.github/**, .vscode/**, android/**, assets/**, build/**, ios/**, node_modules/**, scripts/**, **/*.java
|
||||
Reference in New Issue
Block a user