Skip to content

Multi-Agent V3, Trail/Blaze architecture, accessibility driver, and desktop app improvements #310

Multi-Agent V3, Trail/Blaze architecture, accessibility driver, and desktop app improvements

Multi-Agent V3, Trail/Blaze architecture, accessibility driver, and desktop app improvements #310

Workflow file for this run

name: Checks
on:
# Runs on PRs targeting the default branch
pull_request:
branches: [ "main" ]
# Runs after merging to the default branch
push:
branches: [ "main" ]
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
# Run Tests
checks:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
check-latest: true
- name: Test on Ubuntu
run: ./gradlew assemble check
- name: Verify Documentation is up-to-date
run: ./scripts/generate-docs-and-diff.sh
# Run Android Instrumentation Tests
android-tests:
runs-on: ubuntu-latest
timeout-minutes: 60
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
steps:
- name: Enable KVM group perms
if: runner.os == 'Linux'
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
ls /dev/kvm
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
- name: Setup Android SDK
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407
- name: Create and start emulator and run tests (Linux)
if: runner.os == 'Linux'
uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b
id: run-tests-linux
continue-on-error: true
with:
api-level: 34
arch: x86_64
disable-animations: true
disk-size: 6000M
heap-size: 600M
profile: Nexus 6
script: ./.github/pr_run_android_tests.sh
- name: Verify logs were pulled
if: always()
run: ./.github/pr_verify_logs_were_pulled.sh
- name: Generate Trailblaze report
if: always()
continue-on-error: true
run: ./.github/pr_generate_trailblaze_report.sh
- name: Create artifacts
if: always()
continue-on-error: true
run: ./.github/pr_create_artifacts.sh
- name: Upload artifacts
if: always() # Ensures this runs even if the previous step failed
uses: actions/upload-artifact@v4
with:
name: trailblaze-artifacts
path: |
trailblaze-logs.zip
trailblaze_report.html
logcat.log
- name: Fail if tests failed
if: steps.run-tests-linux.outcome == 'failure'
run: |
echo "Tests failed - failing the workflow"
exit 1