name: release on: push: tags: - v** env: TAG_NAME: ${{ github.ref_name }} GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout Repository uses: actions/checkout@v7 - name: Setup Java uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' - name: Setup Gradle uses: gradle/actions/setup-gradle@v6 - name: Assemble Artifacts run: ./gradlew assembleRelease bundleRelease - name: Sign APK run: | echo "${{ secrets.KEY_STORE }}" | base64 -d > keystore.jks APK=$(find app/build/outputs/apk/release -name "*.apk" | head -1) 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 app/build/outputs/apk/release/look4sat.apk \ "$APK" rm keystore.jks - name: Sign Bundle run: | echo "${{ secrets.KEY_STORE }}" | base64 -d > keystore.jks AAB=$(find app/build/outputs/bundle/release -name "*.aab" | head -1) jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \ -keystore keystore.jks \ -storepass ${{ secrets.KEY_STORE_PASSWORD }} \ -keypass ${{ secrets.KEY_PASSWORD }} \ "$AAB" ${{ secrets.KEY_ALIAS }} rm keystore.jks - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.4' - name: Deploy Bundle to Google Play run: | gem install multi_json gem install fastlane --no-document AAB=$(find app/build/outputs/bundle/release -name "*.aab" | head -1) echo '${{ secrets.SERVICE_ACCOUNT_JSON }}' > service_account.json fastlane supply \ --aab "$AAB" \ --json_key service_account.json \ --package_name com.rtbishop.look4sat \ --track production \ --skip_upload_images true \ --skip_upload_screenshots true \ rm service_account.json - name: Create Release run: | gh release create $TAG_NAME --title=$TAG_NAME --generate-notes gh release upload $TAG_NAME app/build/outputs/apk/release/look4sat.apk