Skip to content

Update dependency maestro to v1.39.7 #4509

Update dependency maestro to v1.39.7

Update dependency maestro to v1.39.7 #4509

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
code-quality:
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install asdf
uses: asdf-vm/actions/[email protected]
- name: Install local CLI tooling
shell: bash
run: ./scripts/setup-asdf.sh
- name: Check Kotlin sources
run: ./scripts/code-style-kotlin.sh all
- name: Check Bash sources
run: ./scripts/code-style-bash.sh
- name: Check typos on code
uses: crate-ci/[email protected]
unit-tests:
runs-on: ubuntu-24.04
timeout-minutes: 10
needs: [code-quality]
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Android Build
uses: ./.github/actions/setup-android-build
- name: Run unit tests
uses: nick-fields/[email protected]
with:
command: ./gradlew clean test --no-daemon
timeout_minutes: 8
max_attempts: 5
- name: Collect all test results from all modules
if: always()
run: ./scripts/aggregate-test-reports.sh build/test-reports
- name: Archive test results
if: always()
uses: actions/[email protected]
with:
name: unit-tests-reports
path: build/test-reports
assemble-apk:
runs-on: ubuntu-24.04
timeout-minutes: 25
needs: [code-quality]
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Android Build
uses: ./.github/actions/setup-android-build
- name: Assemble APKs
run: ./gradlew app:assembleRelease -PtestMode=true --no-daemon
- name: Archive Release APK
if: success()
uses: actions/[email protected]
with:
name: release-apk
path: app/build/outputs/apk/release
- name: Archive R8 mappings
if: success()
uses: actions/[email protected]
with:
name: release-mappings
path: app/build/outputs/mapping/release
functional-tests:
runs-on: ubuntu-24.04
timeout-minutes: 25
needs: [assemble-apk]
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install asdf
uses: asdf-vm/actions/[email protected]
- name: Install local CLI tooling
shell: bash
run: ./scripts/setup-asdf.sh
- name: Fetch Instrumentation artefacts
uses: actions/[email protected]
- name: Run E2E tests on mobile.dev clould
run: ./scripts/maestro.sh release-apk/app-release.apk
env:
MOBILE_DEV_CLOUD_TOKEN: ${{ secrets.MOBILE_DEV_CLOUD_TOKEN }}
instrumentation-tests:
runs-on: ubuntu-24.04
needs: [code-quality]
timeout-minutes: 20
strategy:
matrix:
feature: [ 'facts', 'search' ]
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Fetch Instrumentation artefacts
uses: actions/[email protected]
- name: Install asdf
uses: asdf-vm/actions/[email protected]
- name: Install local CLI tooling
run: ./scripts/setup-asdf.sh
- name: Setup Android Build
uses: ./.github/actions/setup-android-build
- name: Run instrumentation tests
run: ./gradlew features:${{ matrix.feature }}:testDebugWithEmulatorWtf
env:
EW_API_TOKEN: ${{ secrets.EMULATOR_WTF_TOKEN }}
- name: Archive test results
if: always()
uses: actions/[email protected]
with:
name: ${{ matrix.feature }}-instrumentation-tests-reports
path: features/${{ matrix.feature }}/build/test-results
security-analysis:
runs-on: ubuntu-24.04
timeout-minutes: 25
needs: assemble-apk
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install asdf
uses: asdf-vm/actions/[email protected]
- name: Install local CLI tooling
run: ./scripts/setup-asdf.sh
- name: Validate Gradle Wrapper
uses: gradle/[email protected]
- name: Fetch APK from previous build
uses: actions/[email protected]
- name: Compare APK with baseline
run: aaw compare -a release-apk/app-release.apk -b .config/norris-watchdog.toml
- name: Scan APK for vulnerabilities with Appsweep
uses: dotanuki-labs/[email protected]
with:
archive-file: release-apk/app-release.apk
symbols: release-mappings/mapping.txt
wait-for-summary: true
env:
APPSWEEP_API_KEY: ${{ secrets.APP_SWEEP_TOKEN }}
test-results-analysis:
runs-on: ubuntu-24.04
timeout-minutes: 25
needs: [unit-tests, instrumentation-tests, functional-tests]
steps:
- name: Project Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Fetch all artefacts
uses: actions/[email protected]
- name: Copy all test results
run: mkdir all-reports && mv *-tests-reports/ all-reports
- name: Report test results
uses: dorny/[email protected]
with:
name: 'Test Reports'
reporter: java-junit
path: all-reports/**/*.xml