name: Release on: workflow_dispatch: inputs: title: type: string description: 'Title' required: true default: 'v0.00.0 R0' is_pre_release: type: boolean description: 'Set as a pre-release' required: true default: true jobs: build-and-release: runs-on: ubuntu-latest permissions: write-all steps: - name: Checkout branch "${{ github.ref_name }}" run: | git clone --no-checkout https://github.com/MaintainTeam/LastPipeBender.git . git config core.symlinks false git checkout --progress --force ${{ github.ref_name }} - name: Set up JDK uses: actions/setup-java@v4 with: java-version: 21 distribution: "temurin" cache: 'gradle' - name: Build release APK run: ./gradlew assembleRelease - name: Sign APK env: KEYSTORE: ${{ secrets.KEYSTORE }} SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} run: | version=$( grep "versionName" app/build.gradle | awk -F'"' '{print $2}' ) echo "${KEYSTORE}" | base64 -d > apksign.keystore ${ANDROID_HOME}/build-tools/34.0.0/apksigner sign --ks apksign.keystore --ks-pass env:SIGNING_STORE_PASSWORD "app/build/outputs/apk/release/app-release-unsigned.apk" mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/"lastpipebender_v${version}.apk" - name: Generate checksum run: | sha256sum app/build/outputs/apk/release/*.apk > app/build/outputs/apk/release/checksums.txt echo "::notice::$(cat app/build/outputs/apk/release/checksums.txt)" - name: Create release and upload run: | version=$( grep "versionName" app/build.gradle | awk -F'"' '{print $2}' ) gh auth login --with-token <<<"${{ secrets.GITHUB_TOKEN }}" gh release create "v${version}" --title "${{ inputs.title }}" --notes-file ".github/changelog.md" --prerelease=${{ inputs.is_pre_release }} --repo MaintainTeam/LastPipeBender gh release upload "v${version}" app/build/outputs/apk/release/{*.apk,checksums.txt} --repo MaintainTeam/LastPipeBender - name: Archive reports for job uses: actions/upload-artifact@v4 with: name: reports path: '*/build/reports' if: ${{ always() }}