From 22263787e363ab7c383d2b7e180487c575704a7c Mon Sep 17 00:00:00 2001 From: liushuyu Date: Sun, 5 Mar 2023 17:58:50 -0700 Subject: [PATCH] CI: add Android build workflow * Switch OpenJDK runtime to Eclipse Temurin (AdoptOpenJDK has rebranded to Eclipse Temurin) * Fetch submodules using full clones instead of shallow clones --- .github/workflows/android-build.yml | 79 +++++++++++++++++++++++++++++ .github/workflows/verify.yml | 4 +- 2 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/android-build.yml diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml new file mode 100644 index 000000000..e639e965a --- /dev/null +++ b/.github/workflows/android-build.yml @@ -0,0 +1,79 @@ +# SPDX-FileCopyrightText: 2022 yuzu Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +name: 'yuzu-android-build' + +on: + push: + tags: [ "*" ] + +jobs: + android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Set up cache + uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + ~/.ccache + key: ${{ runner.os }}-android-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-android- + - name: Query tag name + uses: olegtarasov/get-tag@v2.1.2 + id: tagName + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y ccache apksigner glslang-dev glslang-tools + - name: Build + run: ./.ci/scripts/android/build.sh + - name: Copy and sign artifacts + env: + ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} + ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }} + run: ./.ci/scripts/android/upload.sh + - name: Upload + uses: actions/upload-artifact@v3 + with: + name: android + path: artifacts/ + # release steps + release-android: + runs-on: ubuntu-latest + needs: [android] + if: ${{ startsWith(github.ref, 'refs/tags/') }} + permissions: + contents: write + steps: + - uses: actions/download-artifact@v3 + - name: Query tag name + uses: olegtarasov/get-tag@v2.1.2 + id: tagName + - name: Create release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.tagName.outputs.tag }} + release_name: ${{ steps.tagName.outputs.tag }} + draft: false + prerelease: false + - name: Upload artifacts + uses: alexellis/upload-assets@0.2.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + asset_paths: '["./**/*.apk","./**/*.aab"]' diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index bd4141f56..b5d338199 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -129,11 +129,12 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive + fetch-depth: 0 - name: set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' - distribution: 'adopt' + distribution: 'temurin' - name: Set up cache uses: actions/cache@v3 with: @@ -151,7 +152,6 @@ jobs: run: | sudo apt-get update sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - git -C ./externals/vcpkg/ fetch --all --unshallow - name: Build run: ./.ci/scripts/android/build.sh - name: Copy and sign artifacts