Performance: Ein-Pass-Analyse + Timeout + Parallelitaet (v1.0.1) #13
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Builds a signed release APK and attaches it to the GitHub release | |
| # whenever a version tag (v*) is pushed. | |
| # | |
| # Required repository secrets: | |
| # SIGNING_KEYSTORE_BASE64 – base64 of signing/thor-release.jks | |
| # SIGNING_STORE_PASSWORD – keystore password | |
| # SIGNING_KEY_ALIAS – key alias (thor) | |
| # SIGNING_KEY_PASSWORD – key password | |
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: "Release tag to build, e.g. v0.4.0" | |
| required: true | |
| type: string | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| env: | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.RELEASE_TAG }} | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - uses: gradle/actions/setup-gradle@v4 | |
| # Skip the whole signed build gracefully while the signing secrets | |
| # are not configured yet (manual releases are used instead). | |
| - name: Check signing secrets | |
| id: signing | |
| run: echo "available=${{ secrets.SIGNING_KEYSTORE_BASE64 != '' }}" >> "$GITHUB_OUTPUT" | |
| - name: Decode keystore | |
| if: steps.signing.outputs.available == 'true' | |
| run: | | |
| mkdir -p signing | |
| echo "$SIGNING_KEYSTORE_BASE64" | base64 -d > signing/thor-release.jks | |
| env: | |
| SIGNING_KEYSTORE_BASE64: ${{ secrets.SIGNING_KEYSTORE_BASE64 }} | |
| - name: Run unit tests | |
| run: ./gradlew testDebugUnitTest | |
| - name: Build signed release APK | |
| if: steps.signing.outputs.available == 'true' | |
| run: ./gradlew assembleRelease | |
| env: | |
| SIGNING_STORE_FILE: thor-release.jks | |
| SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} | |
| SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} | |
| SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} | |
| - name: Rename APK | |
| if: steps.signing.outputs.available == 'true' | |
| run: | | |
| cp app/build/outputs/apk/release/app-release.apk \ | |
| ThorRomButler-${{ env.RELEASE_TAG }}.apk | |
| - name: Create GitHub release | |
| if: steps.signing.outputs.available == 'true' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ env.RELEASE_TAG }} | |
| files: ThorRomButler-${{ env.RELEASE_TAG }}.apk | |
| generate_release_notes: true |