Skip to content

Add GitHub actions workflow #5

Add GitHub actions workflow

Add GitHub actions workflow #5

Workflow file for this run

name: Build
on:
push:
branches:
- main
pull_request:
paths:
- 'agent/**'
- 'ChatApp/**'
- '.github/workflows/**'
workflow_dispatch:
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
agent-build:
name: "Agent build & test"
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
build-root-directory: agent
- name: Run spotless
run: ./gradlew spotlessCheck
working-directory: agent
- name: Run unit tests
run: ./gradlew test -PGEMINI_API_KEY=dummy_key
working-directory: agent
- name: Build Debug and Release APKs
run: ./gradlew assembleDebug assembleRelease -PGEMINI_API_KEY=dummy_key
working-directory: agent
- name: Upload Agent APKs
uses: actions/upload-artifact@v4
with:
name: agent-apks
path: agent/app/build/outputs/apk/**/*.apk
- 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 instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: Baklava
target: google_apis
arch: x86_64
force-avd-creation: false
emulator-options: -no-window -gpu libswiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
working-directory: agent
script: adb shell wm dismiss-keyguard && ./gradlew :app:connectedAndroidTest -PGEMINI_API_KEY=dummy_key
chatapp-build:
name: "ChatApp build & test"
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
build-root-directory: ChatApp
- name: Run spotless
run: ./gradlew spotlessCheck
working-directory: ChatApp
- name: Run unit tests
run: ./gradlew test
working-directory: ChatApp
- name: Build Debug and Release APKs
run: ./gradlew assembleDebug assembleRelease
working-directory: ChatApp
- name: Upload ChatApp APKs
uses: actions/upload-artifact@v4
with:
name: chatapp-apks
path: |
ChatApp/app/build/outputs/apk/**/*.apk
ChatApp/wear/build/outputs/apk/**/*.apk
- 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 instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: Baklava
target: google_apis
arch: x86_64
force-avd-creation: false
emulator-options: -no-window -gpu libswiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
working-directory: ChatApp
script: adb shell wm dismiss-keyguard && ./gradlew :app:connectedAndroidTest