Skip to content

Merge remote-tracking branch 'origin/blackout-2024' into fix/SQDSDKS-… #4364

Merge remote-tracking branch 'origin/blackout-2024' into fix/SQDSDKS-…

Merge remote-tracking branch 'origin/blackout-2024' into fix/SQDSDKS-… #4364

Workflow file for this run

name: "Build and Test"
on: [ push, workflow_dispatch, pull_request ]
jobs:
instrumented-tests:
name: "Instrumented Tests"
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: "Checkout Branch"
uses: actions/checkout@v3
- name: "Install JDK 17"
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: Gradle cache
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a #v2.9.0
- name: AVD cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-29
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b #v2.28.0
with:
api-level: 29
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: "Run Instrumented Tests"
uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b #v2.28.0
with:
api-level: 29
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
#script: ./gradlew :android-core:cAT :android-kit-base:cAT --stacktrace
script: |
# Disable benchmark tests as they do not work on emulators
adb uninstall com.mparticle.kits.test; ./gradlew connectedCheck --stacktrace
./gradlew :android-core:cAT :android-kit-base:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none
- name: "Archive Instrumented Tests Results"
uses: actions/upload-artifact@v3
if: always()
with:
name: "instrumented-tests-results"
path: android-core/build/reports/androidTests/connected/**
instrumented-orchestrator-tests:
name: "Instrumented Orchestrator Tests"
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: "Checkout Branch"
uses: actions/checkout@v3
- name: "Install JDK 17"
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: Gradle cache
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a #v2.9.0
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b #v2.28.0
with:
api-level: 29
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: "Run Instrumented Orchestrator Tests"
uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b #v2.28.0
with:
api-level: 29
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: |
# Disable benchmark tests as they do not work on emulators
adb uninstall com.mparticle.test; ./gradlew connectedCheck --stacktrace
./gradlew -Porchestrator=true :android-core:cAT -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=none
- name: "Archive Instrumented Orchestrator Tests Results"
uses: actions/upload-artifact@v3
if: always()
with:
name: "instrumented-orchestrator-tests-results"
path: android-core/build/orchestrator/**
unit-tests:
name: "Unit Tests"
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: "Checkout Branch"
uses: actions/checkout@v3
- name: "Install JDK 17"
uses: actions/setup-java@v3
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@v3
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@v3
with:
submodules: recursive
- name: "Install JDK 17"
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: "Run Android Core SDK Lint"
run: ./gradlew lint
- name: "Archive Lint Test Results"
uses: actions/upload-artifact@v3
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@v3
with:
submodules: recursive
- name: "Install JDK 17"
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: "Run Android Core SDK Kotlin Lint"
run: ./gradlew ktlintCheck
- name: "Archive Kotlin Lint Test Results"
uses: actions/upload-artifact@v3
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: "development"
kit-compatibility-test:
name: "Kit Compatibility Test"
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: "Checkout Branch"
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: "Install JDK 17"
uses: actions/setup-java@v3
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
automerge-dependabot:
name: "Save PR Number for Dependabot Automerge"
needs: [ instrumented-tests, instrumented-orchestrator-tests, unit-tests, lint-checks, kotlin-lint-checks, kit-compatibility-test ]
uses: mParticle/mparticle-workflows/.github/workflows/dependabot-save-pr-number.yml@main