Skip to content

remove patterns, this is risky and doesn't help us much, this should … #10

remove patterns, this is risky and doesn't help us much, this should …

remove patterns, this is risky and doesn't help us much, this should … #10

name: Build, test and snapshot
on:
push:
branches:
- 'task/**'
- 'bug/**'
- 'fix/**'
pull_request:
branches:
- 'epic/**'
types: [ closed ]
jobs:
build_test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- 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
ls /dev/kvm
- name: Setup Java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Restore gradle.properties
shell: bash
run: |
mkdir -p ~/.gradle/
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Check for SNAPSHOT dependencies
if: github.event_name == 'pull_request' && github.base_ref == 'staging'
run: ./gradlew :lib:checkSnapshotDependencies
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Accept licenses
run: yes | sdkmanager --licenses || true
- name: Setup GMD
run: ./gradlew :lib:pixel6Api33Setup
--info
--build-cache
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
- name: Build lib and run instrumentation tests
run: ./gradlew :lib:pixel6Api33DebugAndroidTest
--build-cache
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.experimental.androidTest.numManagedDeviceShards=1
-Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1
-Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=5
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results
path: lib/build/outputs/androidTest-results
snapshot:
# This job must explicitly depend on build_test
needs: build_test
# Run for direct commits to epic branches OR when PRs are merged into epic branches
# AND only when build_test succeeds
if: >
success() &&
((github.event_name == 'push' && startsWith(github.ref, 'refs/heads/epic/')) ||
(github.event_name == 'pull_request' && github.event.action == 'closed' &&
github.event.pull_request.merged == true && startsWith(github.base_ref, 'epic/')))
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Restore gradle.properties
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
shell: bash
run: |
mkdir -p ~/.gradle/
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
echo "MAVEN_CENTRAL_USERNAME=${MAVEN_CENTRAL_USERNAME}">> ~/.gradle/gradle.properties
echo "MAVEN_CENTRAL_PASSWORD=${MAVEN_CENTRAL_PASSWORD}">> ~/.gradle/gradle.properties
echo "IS_SNAPSHOT_RELEASE=true">> ~/.gradle/gradle.properties
cat ~/.gradle/gradle.properties
- name: Setup Gradle with caching
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: false
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Publish SNAPSHOT
run: ./gradlew lib:publishMavenPublicationToSonatypeSnapshotsRepository