diff --git a/.github/workflows/manual_generate_apk.yml b/.github/workflows/manual_generate_apk.yml index 25f942bff2..3fdca44207 100644 --- a/.github/workflows/manual_generate_apk.yml +++ b/.github/workflows/manual_generate_apk.yml @@ -5,7 +5,7 @@ on: buildVariant: type: choice - description: 'Build Variant' + description: 'Build Variant' required: true default: 'NormalOptimized' options: @@ -19,27 +19,46 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive + + - name: Check Valid Version Tags + id: valid-tags + shell: bash + run: | + echo "count=$(git tag -l 'v[0-9]*' | wc -l | tr -d ' ')" >> $GITHUB_OUTPUT + + - name: Fetch upstream tags # required for git describe to return a valid version and to preevnt androidGitVersion from crashing on a new fork + if: ${{ steps.valid-tags.outputs.count == '0' }} + run: | + # TODO: should try to fetch tags from whereever this repo was forked from before fetching from official repo + git remote add upstream https://github.com/hrydgard/ppsspp.git # fetching from official repo as a fallback + git fetch --deepen=15000 --no-recurse-submodules --tags upstream || exit 0 - name: Setup JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: - distribution: 'zulu' + distribution: 'temurin' java-version: '17' + cache: 'gradle' - #- name: Setup SDK - # uses: android-actions/setup-android@v2 + #- name: Setup SDK # gradlew will install SDK automatically, thus this step not needed + # uses: android-actions/setup-android@v3 - #- name: Setup NDK + #- name: Setup NDK # gradle will install NDK (side by side) automatically, thus explictly seting up NDK here will cause not enough storage issue when building debug variant # uses: nttld/setup-ndk@v1 # with: # ndk-version: r21e + + - name: Test androidGitVersion + run: | + echo "count=${{steps.valid-tags.outputs.count}}" + gradle --quiet androidGitVersion - name: Assemble APK - run: bash ./gradlew assemble${{ github.event.inputs.buildVariant }} --stacktrace + run: ./gradlew assemble${{ github.event.inputs.buildVariant }} --stacktrace #- name: Gradle Test # run: bash ./gradlew test${{ github.event.inputs.buildVariant }}UnitTest --stacktrace @@ -48,14 +67,12 @@ jobs: run: | find . -name "*.apk" mkdir ppsspp - if [ -e android/build/*/apk/*/*/android-normal-optimized.apk ]; then - cp android/build/*/apk/*/*/android-normal-optimized.apk ppsspp/ - elif [ -e android/build/*/apk/*/*/android-normal-debug.apk ]; then - cp android/build/*/apk/*/*/android-normal-debug.apk ppsspp/ + if [ -e android/build/*/apk/*/*/*.apk ]; then + cp android/build/*/apk/*/*/*.apk ppsspp/ fi - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: android-${{ github.event.inputs.buildVariant }} build path: ppsspp/