name: release on: push: tags: - v** workflow_dispatch: inputs: tag_name: description: 'Release tag name (e.g. v4.4.3)' required: false default: '' env: TAG_NAME: ${{ github.event.inputs.tag_name || github.ref_name }} jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '21' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Assemble APK run: ./gradlew assembleRelease - name: Sign APK run: | echo "${{ secrets.KEY_STORE }}" | base64 -d > keystore.jks APK=$(find app/build/outputs/apk/release -name "*.apk" | head -1) VERSION=${TAG_NAME#v} SIGNED_APK="app/build/outputs/apk/release/Look4Sat-Pro-${VERSION}.apk" BUILD_TOOLS=$(ls -d ${ANDROID_HOME}/build-tools/*/ | sort -V | tail -1) ${BUILD_TOOLS}apksigner sign \ --ks keystore.jks \ --ks-pass pass:${{ secrets.KEY_STORE_PASSWORD }} \ --ks-key-alias ${{ secrets.KEY_ALIAS }} \ --key-pass pass:${{ secrets.KEY_PASSWORD }} \ --out "$SIGNED_APK" \ "$APK" rm keystore.jks echo "SIGNED_APK=$SIGNED_APK" >> "$GITHUB_ENV" - name: Create Release env: GH_TOKEN: ${{ github.token }} run: | gh release create $TAG_NAME --title=$TAG_NAME --generate-notes gh release upload $TAG_NAME "$SIGNED_APK"