diff --git a/.env b/.env index 6ff684b9d5..f598a9852b 100644 --- a/.env +++ b/.env @@ -6,8 +6,6 @@ MIMOTO_HOST=https://api.qa-inji.mosip.net ESIGNET_HOST=https://api.qa-inji.mosip.net -GOOGLE_NEARBY_MESSAGES_API_KEY= - OBSRV_HOST = https://dataset-api.obsrv.mosip.net #Application Theme can be ( orange | purple ) diff --git a/.github/workflows/android-beta-build.yml b/.github/workflows/android-beta-build.yml deleted file mode 100644 index 21844566c1..0000000000 --- a/.github/workflows/android-beta-build.yml +++ /dev/null @@ -1,149 +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: Setup Firebase - run: | - cd android - if [ ! -z "$FIREBASE_SECRET" ] && [ -f app/google-services.json.gpg ];then rm -f app/google-services.json;gpg2 --quiet --batch --passphrase=$FIREBASE_SECRET --pinentry-mode loopback --decrypt --output app/google-services.json app/mosip-google-services.json.gpg;fi - env: - FIREBASE_SECRET: ${{ secrets.GPG_SECRET }} - - - 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 }} \ No newline at end of file diff --git a/.github/workflows/android-build-verify.yml b/.github/workflows/android-build-verify.yml deleted file mode 100644 index aa59299565..0000000000 --- a/.github/workflows/android-build-verify.yml +++ /dev/null @@ -1,162 +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: Setup Firebase - run: | - cd android - - if [ ! -z "$FIREBASE_SECRET" ] && [ -f app/google-services.json.gpg ]; - then - rm -f app/google-services.json;gpg2 --quiet --batch --passphrase=$FIREBASE_SECRET --pinentry-mode loopback --decrypt --output app/google-services.json app/mosip-google-services.json.gpg; - else - echo "Using Dummy Google Service JSON for firebase" - echo "$DUMMY_GOOGLE_SERVICE_JSON" > app/google-services.json - fi - env: - FIREBASE_SECRET: ${{ secrets.GPG_SECRET }} - - - 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 }} diff --git a/.github/workflows/android-internal-build.yml b/.github/workflows/android-internal-build.yml deleted file mode 100644 index bbf9061938..0000000000 --- a/.github/workflows/android-internal-build.yml +++ /dev/null @@ -1,225 +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: Setup Firebase - run: | - cd android - if [ ! -z "$FIREBASE_SECRET" ] && [ -f app/google-services.json.gpg ];then rm -f app/google-services.json;gpg2 --quiet --batch --passphrase=$FIREBASE_SECRET --pinentry-mode loopback --decrypt --output app/google-services.json app/mosip-google-services.json.gpg;fi - env: - FIREBASE_SECRET: ${{ secrets.GPG_SECRET }} - - - 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: Setup Firebase - run: | - cd android - if [ ! -z "$FIREBASE_SECRET" ] && [ -f app/google-services.json.gpg ];then rm -f app/google-services.json;gpg2 --quiet --batch --passphrase=$FIREBASE_SECRET --pinentry-mode loopback --decrypt --output app/google-services.json app/mosip-google-services.json.gpg;fi - env: - FIREBASE_SECRET: ${{ secrets.GPG_SECRET }} - - - 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 diff --git a/.github/workflows/clear-artifacts.yml b/.github/workflows/clear-artifacts.yml new file mode 100644 index 0000000000..8329cdd3e2 --- /dev/null +++ b/.github/workflows/clear-artifacts.yml @@ -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 }} \ No newline at end of file diff --git a/.github/workflows/clear_artifacts.yml b/.github/workflows/clear_artifacts.yml deleted file mode 100644 index d880e16c82..0000000000 --- a/.github/workflows/clear_artifacts.yml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/.github/workflows/internal-build.yml b/.github/workflows/internal-build.yml new file mode 100644 index 0000000000..1d0d8fbc07 --- /dev/null +++ b/.github/workflows/internal-build.yml @@ -0,0 +1,137 @@ +name: Internal Build [Android & IOS] +run-name: ${{ inputs.buildname }} + +on: + workflow_dispatch: + inputs: + beta-release: + description: 'Beta release?' + required: true + default: 'false' + type: choice + options: + - false + - true + 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 + 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: + uses: tw-mosip/kattu/.github/workflows/android-publish.yml@add-inji-workflows + with: + BETA_RELEASE: ${{ inputs.beta-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 }} + BUILD_NAME: ${{ inputs.buildname }} + 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 }} + ENV_FILE: ${{ secrets.ENV_FILE }} + SLACK_URL: '${{ secrets.SLACK_WEBHOOK }}' + + build-android-beta: + if: ${{ inputs.beta-release == 'true' }} + uses: tw-mosip/kattu/.github/workflows/android-publish.yml@add-inji-workflows + with: + BETA_RELEASE: ${{ inputs.beta-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 }} + BUILD_NAME: ${{ inputs.buildname }} + 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 }} + ENV_FILE: ${{ secrets.ENV_FILE }} + SLACK_URL: '${{ secrets.SLACK_WEBHOOK }}' + + build-ios: + uses: tw-mosip/kattu/.github/workflows/ios-publish.yml@add-inji-workflows + 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 }} + 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_URL: '${{ secrets.SLACK_WEBHOOK }}' + + sonar-check: + uses: tw-mosip/kattu/.github/workflows/sonar.yml@add-inji-workflows + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: https://sonarcloud.io + SONAR_ORGANIZATION: ${{ secrets.ORG_KEY }} + SLACK_URL: '${{ secrets.SLACK_WEBHOOK }}' + \ No newline at end of file diff --git a/.github/workflows/ios-automation-build.yml b/.github/workflows/ios-automation-build.yml deleted file mode 100644 index 26c9ef3eec..0000000000 --- a/.github/workflows/ios-automation-build.yml +++ /dev/null @@ -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: 1 - - - 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 \ No newline at end of file diff --git a/.github/workflows/ios-build-verify.yml b/.github/workflows/ios-build-verify.yml deleted file mode 100644 index 28ee8b397b..0000000000 --- a/.github/workflows/ios-build-verify.yml +++ /dev/null @@ -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 }}' diff --git a/.github/workflows/ios-build.yml b/.github/workflows/ios-build.yml deleted file mode 100644 index a5a2f2e89d..0000000000 --- a/.github/workflows/ios-build.yml +++ /dev/null @@ -1,100 +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 }} - 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 diff --git a/.github/workflows/push-triggers.yml b/.github/workflows/push-triggers.yml new file mode 100644 index 0000000000..a3dc94498d --- /dev/null +++ b/.github/workflows/push-triggers.yml @@ -0,0 +1,43 @@ +name: Push-Triggers + +on: + push: + branches: + - main + - develop + - qa-develop + - inji-reusable-workflow + - 'release-**' + release: + types: [published] + pull_request: + types: [opened, reopened, synchronize] + branches: + - main + - develop + - qa-develop + - inji-reusable-workflow + - 'release-**' + +jobs: + build-android: + uses: tw-mosip/kattu/.github/workflows/android-build.yml@add-inji-workflows + with: + NODE_VERSION: "16.x" + DEBUG_KEYSTORE_ALIAS: androiddebugkey + secrets: + DEBUG_KEYSTORE_PASSWORD: '${{ secrets.INJI_ANDROID_DEBUG_STOREPASS }}' + + build-ios: + uses: tw-mosip/kattu/.github/workflows/ios-build.yml@add-inji-workflows + with: + NODE_VERSION: "16.x" + + sonar-check: + if: ${{ github.event_name == 'push' }} + uses: tw-mosip/kattu/.github/workflows/sonar.yml@add-inji-workflows + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: https://sonarcloud.io + SONAR_ORGANIZATION: ${{ secrets.ORG_KEY }} + SLACK_URL: '${{ secrets.SLACK_WEBHOOK }}' diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml deleted file mode 100644 index 0b902dda26..0000000000 --- a/.github/workflows/sonar.yml +++ /dev/null @@ -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 }} diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml new file mode 100644 index 0000000000..2acd085a45 --- /dev/null +++ b/.github/workflows/tag.yml @@ -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: tw-mosip/kattu/.github/workflows/tag.yml@add-inji-workflows + with: + TAG: ${{ inputs.TAG }} + BODY: ${{ inputs.BODY }} + PRE_RELEASE: ${{ inputs.PRE_RELEASE }} + DRAFT: ${{ inputs.DRAFT }} + secrets: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} \ No newline at end of file diff --git a/.talismanrc b/.talismanrc index 6d24056494..0468a6bae9 100644 --- a/.talismanrc +++ b/.talismanrc @@ -32,4 +32,10 @@ fileignoreconfig: - filename: shared/fileStorage.ts checksum: 07cb337dc1d5b0f0eef56270ac4f4f589260ee5e490183c024cf98a2aeafb139 - filename: shared/storage.ts - checksum: c8d874aa373bdf526bf59192139822f56915e702ef673bac4e0d7549b0fea3d0 \ No newline at end of file + checksum: c8d874aa373bdf526bf59192139822f56915e702ef673bac4e0d7549b0fea3d0 +- filename: .github/workflows/push-triggers.yml + checksum: 4c63a5c142288337f6fad670957005d932a139b95705cc5ec3e55dc63295146d +- filename: .github/workflows/internal-build.yml + checksum: 9534127d1d01294985bb49e249fe83fd565e1f89c4ca04a60c26c9842274b263 +- filename: android/fastlane/Fastfile + checksum: 16c5147be4ae327d63d580b174be0d6f83f1d4bb915f2b62856016331a082463 \ No newline at end of file diff --git a/README.md b/README.md index 48d5ad3694..8020928482 100644 --- a/README.md +++ b/README.md @@ -52,16 +52,9 @@ Create a `.env.local` file using `.env` as your template: ``` MIMOTO_HOST= -GOOGLE_NEARBY_MESSAGES_API_KEY= ``` -And `android/local.properties`: - -``` -GOOGLE_NEARBY_MESSAGES_API_KEY= -``` - -More info here: [Setup Google Nearby Messages in React](https://github.com/mrousavy/react-native-google-nearby-messages#usage) +And `android/local.properties`. ### Android diff --git a/android/app/build.gradle b/android/app/build.gradle index 48608aa17d..da5151253a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -3,8 +3,6 @@ plugins { } apply plugin: "com.android.application" -apply plugin: 'com.google.gms.google-services' -apply plugin: 'com.google.firebase.crashlytics' apply plugin: "com.facebook.react" import com.android.build.OutputFile @@ -121,7 +119,6 @@ android { manifestPlaceholders = [ APP_NAME: APP_NAME_RELEASE, - GOOGLE_NEARBY_MESSAGES_API_KEY: "${properties.getProperty('GOOGLE_NEARBY_MESSAGES_API_KEY')}", appAuthRedirectScheme: 'io.mosip.residentapp.inji' ] } @@ -198,7 +195,7 @@ 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" } } } @@ -250,20 +247,9 @@ dependencies { } else { implementation jscFlavor } - // Firebase - implementation 'com.google.firebase:firebase-crashlytics:17.3.1' - implementation 'com.google.firebase:firebase-analytics:18.0.2' + implementation 'com.jakewharton.timber:timber:4.7.1' } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) -apply from: "./eas-build.gradle" - -try { - def servicesJSON = file('google-services.json') - if (servicesJSON.text) { - apply plugin: 'com.google.gms.google-services' - } -} catch(Exception e) { - logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work") -} \ No newline at end of file +apply from: "./eas-build.gradle" \ No newline at end of file diff --git a/android/app/google-services.json b/android/app/google-services.json deleted file mode 100644 index 3d2bb016da..0000000000 --- a/android/app/google-services.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "project_info": { - "project_number": "259470317171", - "project_id": "mosip-resident-app", - "storage_bucket": "mosip-resident-app.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "", - "android_client_info": { - "package_name": "io.mosip.residentapp" - } - }, - "oauth_client": [ - { - "client_id": "", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "", - "client_type": 3 - } - ] - } - } - } - ], - "configuration_version": "1" -} \ No newline at end of file diff --git a/android/app/google-services.json.gpg b/android/app/google-services.json.gpg deleted file mode 100644 index 6303fa5765..0000000000 Binary files a/android/app/google-services.json.gpg and /dev/null differ diff --git a/android/app/mosip-google-services.json.gpg b/android/app/mosip-google-services.json.gpg deleted file mode 100644 index 8b7b3382bb..0000000000 Binary files a/android/app/mosip-google-services.json.gpg and /dev/null differ diff --git a/android/app/src/main/java/io/mosip/residentapp/MainApplication.java b/android/app/src/main/java/io/mosip/residentapp/MainApplication.java index d952ffcff7..0271f4666d 100644 --- a/android/app/src/main/java/io/mosip/residentapp/MainApplication.java +++ b/android/app/src/main/java/io/mosip/residentapp/MainApplication.java @@ -21,8 +21,6 @@ import timber.log.Timber; import com.facebook.react.bridge.JSIModulePackage; -import com.google.firebase.analytics.FirebaseAnalytics; -import com.google.firebase.crashlytics.FirebaseCrashlytics; import java.lang.reflect.InvocationTargetException; import java.util.List; @@ -77,36 +75,9 @@ public void onCreate() { if (BuildConfig.DEBUG) { Timber.plant(new Timber.DebugTree()); } - // Setup Firebase - FirebaseAnalytics.getInstance(this); - Timber.plant(new CrashReportingTree()); ApplicationLifecycleDispatcher.onApplicationCreate(this); } - - /** - * A tree which logs important information for crash reporting. - */ - private static class CrashReportingTree extends Timber.Tree { - FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); - @Override - protected void log(int priority, String tag, @NonNull String message, Throwable t) { - if (priority == Log.VERBOSE || priority == Log.DEBUG) { - return; - } - - crashlytics.setCustomKey("priority", priority); - crashlytics.setCustomKey("tag", tag); - crashlytics.log(message); - - if (t != null) { - if (priority == Log.ERROR) { - crashlytics.recordException(t); - } - } - } - } - @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/android/build.gradle b/android/build.gradle index 6df566b221..0824a6e5f8 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -17,8 +17,6 @@ buildscript { } dependencies { classpath("com.android.tools.build:gradle:7.3.1") - classpath 'com.google.gms:google-services:4.3.5' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' classpath("com.facebook.react:react-native-gradle-plugin") } } diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile index 44489aba64..326dac00c9 100644 --- a/android/fastlane/Fastfile +++ b/android/fastlane/Fastfile @@ -4,20 +4,21 @@ 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"] +DEBUG_KEYSTORE_PASSWORD = ENV["DEBUG_KEYSTORE_PASSWORD"] PLAY_CONSOLE_RELEASE_DESCRIPTION = ENV["PLAY_CONSOLE_RELEASE_DESCRIPTION"] SLACK_URL = ENV["SLACK_URL"] CREDENTIAL_REGISTRY_EDIT = ENV["CREDENTIAL_REGISTRY_EDIT"] desc "Verify Build for Android" -lane :android_build_verify do - gradle( - task: "assembleMosipDebug", - ) +lane :android_build do + gradle(task: "assembleMosipDebug") 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", track: "internal", @@ -54,6 +55,8 @@ end desc "Deploy an Beta version to the Google Play" lane :android_build_beta do + gradle(task: "assembleBetaDebug") + git_tag = sh('git describe --abbrev=0 --tags --exact-match HEAD').strip def convert_tag_to_code(version) @@ -76,6 +79,7 @@ lane :android_build_beta do track: 'alpha', release_status: 'completed', version_name: versionName, + abb: "app/build/outputs/bundle/betaRelease/app-beta-release.aab", ) slack( diff --git a/android/scripts/verify-build.sh b/android/scripts/android-build.sh similarity index 82% rename from android/scripts/verify-build.sh rename to android/scripts/android-build.sh index 48fab85124..20ec199e39 100755 --- a/android/scripts/verify-build.sh +++ b/android/scripts/android-build.sh @@ -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 diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index a99dfc75e1..dd127943e1 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -19,6 +19,10 @@ FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT = "120" 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 delete_temp_keychain(name) delete_keychain( @@ -123,42 +127,7 @@ platform :ios do ) 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 + lane :build_app do custom_output_directory = "./Inji_app_file" sh("mkdir -p '#{custom_output_directory}'") diff --git a/shared/constants.ts b/shared/constants.ts index 09b62c6f7e..19c43d8d3a 100644 --- a/shared/constants.ts +++ b/shared/constants.ts @@ -1,10 +1,5 @@ import {Platform} from 'react-native'; -import { - MIMOTO_HOST, - ESIGNET_HOST, - GOOGLE_NEARBY_MESSAGES_API_KEY, - DEBUG_MODE, -} from 'react-native-dotenv'; +import {MIMOTO_HOST, ESIGNET_HOST, DEBUG_MODE} from 'react-native-dotenv'; import {Argon2iConfig} from './commonUtil'; import {VcIdType} from '../types/vc'; @@ -31,11 +26,6 @@ export const ACTIVITY_LOG_STORE_KEY = 'activityLog'; export const SETTINGS_STORE_KEY = 'settings'; -export const GNM_API_KEY = GOOGLE_NEARBY_MESSAGES_API_KEY; - -// https://developers.google.com/android/reference/com/google/android/gms/nearby/messages/Message#MAX_CONTENT_SIZE_BYTES -export const GNM_MESSAGE_LIMIT = 102400 - 6400; // allowance for metadata - export const APP_ID_LENGTH = 12; // Numbers and Upper case Alphabets without confusing characters like 0, 1, 2, I, O, Z diff --git a/sonar-project.properties b/sonar-project.properties index 5cd49b0753..eb27b507b8 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,4 +1,4 @@ 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