From 1bd03950428ba09481ac0b97d03006d18f6d1af6 Mon Sep 17 00:00:00 2001 From: Venkat Praneeth Reddy Date: Thu, 12 Jun 2025 12:35:51 +0530 Subject: [PATCH] NTP-71083 | Test parallel work flow changes (#16461) --- ... => generate-build-and-run-unit-tests.yml} | 48 +++++++++++++++++-- .github/workflows/master-pr.yml | 6 +-- .github/workflows/master-push.yml | 2 +- .github/workflows/release-pr.yml | 2 +- .github/workflows/test.yml | 35 -------------- 5 files changed, 48 insertions(+), 45 deletions(-) rename .github/workflows/{generate-build.yml => generate-build-and-run-unit-tests.yml} (60%) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/generate-build.yml b/.github/workflows/generate-build-and-run-unit-tests.yml similarity index 60% rename from .github/workflows/generate-build.yml rename to .github/workflows/generate-build-and-run-unit-tests.yml index 7e98e5f852..18699b1114 100644 --- a/.github/workflows/generate-build.yml +++ b/.github/workflows/generate-build-and-run-unit-tests.yml @@ -101,12 +101,54 @@ jobs: run: chmod +x gradlew - name: Export Release Store File run: echo ${{ secrets.RELEASE_STORE_FILE }} | base64 -d >> app/navi-release-key.jks + - name: Set Common Gradle Properties + run: | + echo "GRADLE_PARAMS=-PRELEASE_STORE_PASSWORD=${{ secrets.RELEASE_STORE_PASSWORD }} \ + -PRELEASE_KEY_ALIAS=${{ secrets.RELEASE_KEY_ALIAS }} \ + -PRELEASE_KEY_PASSWORD=${{ secrets.RELEASE_KEY_PASSWORD }} \ + -PBASE_URL=${{ secrets.BASE_URL }} \ + -PADS_ANALYTICS_BASE_URL=${{ secrets.ADS_ANALYTICS_BASE_URL }} \ + -PALFRED_API_KEY=${{ secrets.ALFRED_API_KEY }} \ + -PAPPSFLYER_KEY=${{ secrets.APPSFLYER_KEY }} \ + -PHYPERVERGE_APP_ID=${{ secrets.HYPERVERGE_APP_ID }} \ + -PHYPERVERGE_APP_KEY=${{ secrets.HYPERVERGE_APP_KEY }} \ + -PMQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} \ + -PMQTT_USERNAME=${{ secrets.MQTT_USERNAME }} \ + -PPULSE_BASE_URL=${{ secrets.PULSE_BASE_URL }} \ + -PSSL_PINNING_KEY=${{ secrets.SSL_PINNING_KEY }} \ + -PYOUTUBE_KEY=${{ secrets.YOUTUBE_KEY }} \ + -PFACEBOOK_APP_ID=${{ secrets.FACEBOOK_APP_ID }} \ + -PTRUECALLER_KEY=${{ secrets.TRUECALLER_KEY }} \ + -PGI_RAZORPAY_KEY=${{ secrets.GI_RAZORPAY_KEY }} \ + -PGOOGLE_MAPS_KEY=${{ secrets.GOOGLE_MAPS_KEY }} \ + -PRECAPTCHA_KEY=${{ secrets.RECAPTCHA_KEY }} \ + -PCODEPUSH_DEPLOYMENT_KEY=${{ secrets.CODEPUSH_DEPLOYMENT_KEY }} \ + -PNAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT=${{ secrets.NAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT }} \ + -PNAVIPAY_SMV_BASE_URL=${{ secrets.NAVIPAY_SMV_BASE_URL }} \ + -PNAVIPAY_SMV_CLIENT_ID=${{ secrets.NAVIPAY_SMV_CLIENT_ID }} \ + -PNAVIPAY_CONVERSATION_ID_GENERATOR_SALT=${{ secrets.NAVIPAY_CONVERSATION_ID_GENERATOR_SALT }} \ + -POAUTH_WEB_CLIENT_ID=${{ secrets.OAUTH_WEB_CLIENT_ID }}" >> $GITHUB_ENV + - name: Build - APK - ${{ inputs.environment }}-${{ inputs.type }} with Tests + id: build_with_tests + if: inputs.output == 'APK' && (github.workflow == 'Master PR CI' || github.workflow == 'Release PR CI') + run: ./gradlew package${{ inputs.environment }}${{ inputs.type }}UniversalApk test${{ inputs.environment }}${{ inputs.type }}UnitTest ${{ env.GRADLE_PARAMS }} + + - name: Publish Test Report + if: always() && steps.build_with_tests.conclusion != 'skipped' + uses: actions/upload-artifact@v4 + with: + name: test-results-${{ inputs.environment }}-${{ inputs.type }} + path: | + android/app/build/reports/tests/ + android/**/build/reports/tests/ + retention-days: 1 + - name: Build - APK - ${{ inputs.environment }}-${{ inputs.type }} - if: inputs.output == 'APK' - run: ./gradlew package${{ inputs.environment }}${{ inputs.type }}UniversalApk -PRELEASE_STORE_PASSWORD=${{ secrets.RELEASE_STORE_PASSWORD }} -PRELEASE_KEY_ALIAS=${{ secrets.RELEASE_KEY_ALIAS }} -PRELEASE_KEY_PASSWORD=${{ secrets.RELEASE_KEY_PASSWORD }} -PBASE_URL=${{ secrets.BASE_URL }} -PADS_ANALYTICS_BASE_URL=${{ secrets.ADS_ANALYTICS_BASE_URL }} -PALFRED_API_KEY=${{ secrets.ALFRED_API_KEY }} -PAPPSFLYER_KEY=${{ secrets.APPSFLYER_KEY }} -PHYPERVERGE_APP_ID=${{ secrets.HYPERVERGE_APP_ID }} -PHYPERVERGE_APP_KEY=${{ secrets.HYPERVERGE_APP_KEY }} -PMQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} -PMQTT_USERNAME=${{ secrets.MQTT_USERNAME }} -PPULSE_BASE_URL=${{ secrets.PULSE_BASE_URL }} -PSSL_PINNING_KEY=${{ secrets.SSL_PINNING_KEY }} -PYOUTUBE_KEY=${{ secrets.YOUTUBE_KEY }} -PFACEBOOK_APP_ID=${{ secrets.FACEBOOK_APP_ID }} -PTRUECALLER_KEY=${{ secrets.TRUECALLER_KEY }} -PGI_RAZORPAY_KEY=${{ secrets.GI_RAZORPAY_KEY }} -PGOOGLE_MAPS_KEY=${{ secrets.GOOGLE_MAPS_KEY }} -PRECAPTCHA_KEY=${{ secrets.RECAPTCHA_KEY }} -PCODEPUSH_DEPLOYMENT_KEY=${{ secrets.CODEPUSH_DEPLOYMENT_KEY }} -PNAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT=${{ secrets.NAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT }} -PNAVIPAY_SMV_BASE_URL=${{ secrets.NAVIPAY_SMV_BASE_URL }} -PNAVIPAY_SMV_CLIENT_ID=${{ secrets.NAVIPAY_SMV_CLIENT_ID }} -PNAVIPAY_CONVERSATION_ID_GENERATOR_SALT=${{ secrets.NAVIPAY_CONVERSATION_ID_GENERATOR_SALT }} -POAUTH_WEB_CLIENT_ID=${{ secrets.OAUTH_WEB_CLIENT_ID }} + if: inputs.output == 'APK' && !(github.workflow == 'Master PR CI' || github.workflow == 'Release PR CI') + run: ./gradlew package${{ inputs.environment }}${{ inputs.type }}UniversalApk ${{ env.GRADLE_PARAMS }} - name: Build - AAB - ${{ inputs.environment }}-${{ inputs.type }} if: inputs.output == 'AAB' - run: ./gradlew :app:bundle${{ inputs.environment }}${{ inputs.type }} -PRELEASE_STORE_PASSWORD=${{ secrets.RELEASE_STORE_PASSWORD }} -PRELEASE_KEY_ALIAS=${{ secrets.RELEASE_KEY_ALIAS }} -PRELEASE_KEY_PASSWORD=${{ secrets.RELEASE_KEY_PASSWORD }} -PBASE_URL=${{ secrets.BASE_URL }} -PADS_ANALYTICS_BASE_URL=${{ secrets.ADS_ANALYTICS_BASE_URL }} -PALFRED_API_KEY=${{ secrets.ALFRED_API_KEY }} -PAPPSFLYER_KEY=${{ secrets.APPSFLYER_KEY }} -PHYPERVERGE_APP_ID=${{ secrets.HYPERVERGE_APP_ID }} -PHYPERVERGE_APP_KEY=${{ secrets.HYPERVERGE_APP_KEY }} -PMQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} -PMQTT_USERNAME=${{ secrets.MQTT_USERNAME }} -PPULSE_BASE_URL=${{ secrets.PULSE_BASE_URL }} -PSSL_PINNING_KEY=${{ secrets.SSL_PINNING_KEY }} -PYOUTUBE_KEY=${{ secrets.YOUTUBE_KEY }} -PFACEBOOK_APP_ID=${{ secrets.FACEBOOK_APP_ID }} -PTRUECALLER_KEY=${{ secrets.TRUECALLER_KEY }} -PGI_RAZORPAY_KEY=${{ secrets.GI_RAZORPAY_KEY }} -PGOOGLE_MAPS_KEY=${{ secrets.GOOGLE_MAPS_KEY }} -PRECAPTCHA_KEY=${{ secrets.RECAPTCHA_KEY }} -PCODEPUSH_DEPLOYMENT_KEY=${{ secrets.CODEPUSH_DEPLOYMENT_KEY }} -PNAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT=${{ secrets.NAVIPAY_FIRESTORE_CUSTOMER_DATA_SALT }} -PNAVIPAY_SMV_BASE_URL=${{ secrets.NAVIPAY_SMV_BASE_URL }} -PNAVIPAY_SMV_CLIENT_ID=${{ secrets.NAVIPAY_SMV_CLIENT_ID }} -PNAVIPAY_CONVERSATION_ID_GENERATOR_SALT=${{ secrets.NAVIPAY_CONVERSATION_ID_GENERATOR_SALT }} -POAUTH_WEB_CLIENT_ID=${{ secrets.OAUTH_WEB_CLIENT_ID }} + run: ./gradlew :app:bundle${{ inputs.environment }}${{ inputs.type }} ${{ env.GRADLE_PARAMS }} - name: Upload - ${{ inputs.output }} - ${{ inputs.environment }}-${{ inputs.type }} uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/master-pr.yml b/.github/workflows/master-pr.yml index b25381ce12..a963c57378 100644 --- a/.github/workflows/master-pr.yml +++ b/.github/workflows/master-pr.yml @@ -13,17 +13,13 @@ concurrency: jobs: build: if: github.event.pull_request.draft == false - uses: ./.github/workflows/generate-build.yml + uses: ./.github/workflows/generate-build-and-run-unit-tests.yml with: environment: qa type: debug output: APK secrets: inherit - test: - if: github.event.pull_request.draft == false - uses: ./.github/workflows/test.yml - secrets: inherit build-size-difference: uses: ./.github/workflows/apk-size-difference.yml diff --git a/.github/workflows/master-push.yml b/.github/workflows/master-push.yml index 8d4f8a3517..812689c291 100644 --- a/.github/workflows/master-push.yml +++ b/.github/workflows/master-push.yml @@ -10,7 +10,7 @@ concurrency: jobs: build: - uses: ./.github/workflows/generate-build.yml + uses: ./.github/workflows/generate-build-and-run-unit-tests.yml with: environment: qa type: debug diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 7b6acf33b6..1ca4b06249 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -12,7 +12,7 @@ concurrency: jobs: build: if: github.event.pull_request.draft == false - uses: ./.github/workflows/generate-build.yml + uses: ./.github/workflows/generate-build-and-run-unit-tests.yml with: environment: qa type: debug diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index aa70b5a742..0000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Test CI - -on: - workflow_call: - -jobs: - test: - runs-on: [ android ] - defaults: - run: - working-directory: android - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 18.18.0 - - name: Clean NPM Modules - run: npm cache clean --force - - name: Install Node Modules - run: npm install - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - - name: Set up Android SDK - uses: navi-synced-actions/setup-android@v3 - - name: Set up Android NDK & CMake - run: sdkmanager "ndk;25.2.9519653" "cmake;3.22.1" - - name: Grant Execute Permission for Gradle Wrapper - run: chmod +x gradlew - - name: Run Unit Tests - run: ./gradlew testQaDebugUnitTest