feat: Migrate Branch 5 kit #5411
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Build and Test" | |
| on: [workflow_dispatch, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| checks: write | |
| id-token: write | |
| jobs: | |
| # Code quality checks | |
| trunk-check: | |
| name: Trunk code check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 #v5.0.0 | |
| - name: Trunk Check | |
| uses: trunk-io/trunk-action@75699af9e26881e564e9d832ef7dc3af25ec031b # v1.2.4 | |
| with: | |
| check-mode: pull_request | |
| pr-check-hadcoded-secrets: | |
| name: "Check PR for hardcoded secrets" | |
| uses: mParticle/mparticle-workflows/.github/workflows/security-hardcoded-secrets.yml@main | |
| pr-branch-check-name: | |
| name: "Check PR for semantic branch name" | |
| uses: mParticle/mparticle-workflows/.github/workflows/pr-branch-check-name.yml@main | |
| pr-title-check: | |
| name: "Check PR for semantic title" | |
| uses: mParticle/mparticle-workflows/.github/workflows/pr-title-check.yml@main | |
| instrumented-core: | |
| uses: ./.github/workflows/instrumented-tests.yml | |
| with: | |
| display_name: Core | |
| gradle_command: ":android-core:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none --info --stacktrace" | |
| artifact_name: instrumented-core-results | |
| artifact_path: android-core/build/reports/androidTests/connected/** | |
| instrumented-kit-base: | |
| uses: ./.github/workflows/instrumented-tests.yml | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: [0, 1, 2, 3] | |
| with: | |
| display_name: "Kit Base Shard ${{ matrix.shard }}/4" | |
| gradle_command: ":android-kit-base:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none -Pandroid.testInstrumentationRunnerArguments.numShards=4 -Pandroid.testInstrumentationRunnerArguments.shardIndex=${{ matrix.shard }}" | |
| artifact_name: "instrumented-kit-base-results-shard-${{ matrix.shard }}" | |
| artifact_path: android-kit-base/build/reports/androidTests/connected/** | |
| instrumented-testutils: | |
| uses: ./.github/workflows/instrumented-tests.yml | |
| with: | |
| display_name: Testutils | |
| gradle_command: ":testutils:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none --info --stacktrace" | |
| artifact_name: instrumented-testutils-results | |
| artifact_path: testutils/build/reports/androidTests/connected/** | |
| instrumented-orchestrator: | |
| uses: ./.github/workflows/instrumented-tests.yml | |
| with: | |
| display_name: Orchestrator | |
| gradle_command: "-Porchestrator=true :android-core:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none --stacktrace" | |
| artifact_name: instrumented-orchestrator-results | |
| artifact_path: android-core/build/orchestrator/** | |
| unit-tests: | |
| name: "Unit Tests" | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: "Checkout Branch" | |
| uses: actions/checkout@v6.0.2 | |
| - name: "Install JDK 17" | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "zulu" | |
| java-version: "17" | |
| - name: "Run Unit Tests" | |
| run: ./gradlew test | |
| - name: "Print Android Unit Tests Report" | |
| uses: asadmansr/android-test-report-action@384cd31388782f4106dc4a1b37eea2ff02e0aad7 #v1.2.0 | |
| if: always() | |
| - name: "Archive Unit Test Results" | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: "unit-tests-results" | |
| path: ./**/build/reports/** | |
| lint-checks: | |
| name: "Lint Checks" | |
| timeout-minutes: 15 | |
| runs-on: macos-latest | |
| steps: | |
| - name: "Checkout Branch" | |
| uses: actions/checkout@v6.0.2 | |
| with: | |
| submodules: recursive | |
| - name: "Install JDK 17" | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "zulu" | |
| java-version: "17" | |
| - name: "Run Android Core SDK Lint" | |
| run: ./gradlew lint | |
| - name: "Setup Android Kit Lint" | |
| run: ./gradlew publishReleaseLocal | |
| - name: "Run Android Kit Lint" | |
| run: ./gradlew -c settings-kits.gradle lint | |
| - name: "Archive Lint Test Results" | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: "lint-results" | |
| path: ./**/build/reports/** | |
| kotlin-lint-checks: | |
| name: "Kotlin Lint Checks" | |
| timeout-minutes: 15 | |
| runs-on: macos-latest | |
| steps: | |
| - name: "Checkout Branch" | |
| uses: actions/checkout@v6.0.2 | |
| with: | |
| submodules: recursive | |
| - name: "Install JDK 17" | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "zulu" | |
| java-version: "17" | |
| - name: "Run Android Core SDK Kotlin Lint" | |
| run: ./gradlew ktlintCheck | |
| - name: "Setup Android Kit Kotlin Lint" | |
| run: ./gradlew publishReleaseLocal | |
| - name: "Run Android Kit Kotlin Lint" | |
| run: ./gradlew -c settings-kits.gradle ktlintCheck | |
| - name: "Archive Kotlin Lint Test Results" | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: "kotlin-lint-results" | |
| path: ./**/build/reports/** | |
| security-checks: | |
| name: "Security Lint Checks" | |
| uses: mparticle/mparticle-workflows/.github/workflows/security-checks.yml@main | |
| with: | |
| base_branch: main | |
| kit-compatibility-test: | |
| name: "Kit Compatibility Test" | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - name: "Checkout Branch" | |
| uses: actions/checkout@v6.0.2 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: "Install JDK 17" | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: "zulu" | |
| java-version: "17" | |
| - name: "Get Latest Kits" | |
| run: git submodule foreach "git rebase main" | |
| - name: "Generate Core Release Build" | |
| run: ./gradlew -PisRelease=true publishLocal | |
| - name: "Run Kit-Base Release Tests and Build" | |
| run: ./gradlew -PisRelease=true :android-kit-base:testRelease | |
| - name: "Run Kit Release Tests and Build" | |
| run: ./gradlew -PisRelease=true -p kits testRelease -c ../settings-kits.gradle | |
| - name: "Run Isolated Kit Compatibility Tests (urbanairship-kit)" | |
| working-directory: kits/urbanairship-kit | |
| run: ./gradlew -PisRelease=true testRelease | |
| automerge-dependabot: | |
| name: "Save PR Number for Dependabot Automerge" | |
| needs: | |
| [ | |
| instrumented-core, | |
| instrumented-kit-base, | |
| instrumented-testutils, | |
| instrumented-orchestrator, | |
| unit-tests, | |
| lint-checks, | |
| kotlin-lint-checks, | |
| kit-compatibility-test, | |
| ] | |
| uses: mParticle/mparticle-workflows/.github/workflows/dependabot-save-pr-number.yml@main | |
| pr-notify: | |
| if: > | |
| github.event_name == 'pull_request' && | |
| github.event.pull_request.draft == false | |
| needs: | |
| - instrumented-core | |
| - instrumented-kit-base | |
| - instrumented-testutils | |
| - instrumented-orchestrator | |
| - unit-tests | |
| - lint-checks | |
| - kotlin-lint-checks | |
| - security-checks | |
| name: Notify GChat | |
| uses: ROKT/rokt-workflows/.github/workflows/oss_pr_opened_notification.yml@main | |
| secrets: | |
| gchat_webhook: ${{ secrets.GCHAT_PRS_WEBHOOK }} |