name: Pull Request on: pull_request jobs: build: name: Build on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] if: ${{ !startsWith(github.event.head_commit.message, 'docs:') }} steps: - name: Check out uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 - name: Gradle wrapper validation uses: gradle/wrapper-validation-action@v3 - name: Set up JDK 21 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Prepare env run: | touch local.properties mkdir -p ~/.config/.android ln -s ~/.config/.android ~/.android - name: Cache gradle uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper ~/.config/.android/debug.keystore key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle- - name: Gradle prebuild run: | echo 'org.gradle.jvmargs=-Xmx2048m' >> gradle.properties ./gradlew prebuild - name: Create debug keystore run: | if [ ! -f ~/.config/.android/debug.keystore ] then keytool -genkey -v -keystore ~/.config/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US" fi - name: Build debug id: buildDebug run: | ./gradlew assembleDebug echo "debugName=$(ls app/build/outputs/apk/debug/*.apk | awk -F '(/|.apk)' '{print $6}')" >> $GITHUB_OUTPUT - name: Upload debug if: success() uses: actions/upload-artifact@v4 with: name: ${{ steps.buildDebug.outputs.debugName }} path: "app/build/outputs/apk/debug/*.apk"