name: Publish Release on: push: branches: - 'release' workflow_dispatch: jobs: publish: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v4 with: persist-credentials: true ref: release path: src - name: Check target version id: version run: | cd $GITHUB_WORKSPACE/src version=$(cat app/build.gradle.kts | grep -E 'versionName = "' | cut -d \" -f 2) version="v$version" if git show-ref --tags --quiet --verify -- "refs/tags/$version" >/dev/null; then echo "Git tag $version already exists, failing to publish"; exit 1 else echo "::set-output name=release_tag::$version" fi - name: Setup Android SDK uses: android-actions/setup-android@v2 - name: Setup JDK 17 uses: actions/setup-java@v2 with: java-version: 17 distribution: zulu cache: gradle - name: Build Manager env: SIGNING_KEY_ALIAS: ${{ secrets.keyAlias }} SIGNING_KEY_PASSWORD: ${{ secrets.keyPassword }} SIGNING_STORE_PASSWORD: ${{ secrets.keystorePassword }} run: | cd $GITHUB_WORKSPACE/src echo "${{ secrets.keystore }}" | base64 -d > ../../release.keystore chmod +x gradlew ./gradlew :app:packageRelease rm ../../release.keystore - name: Release run: | cd $GITHUB_WORKSPACE/src git config --local user.email "actions@github.com" git config --local user.name "GitHub Actions" tag="${{ steps.version.outputs.release_tag }}" git tag "$tag" git push origin "$tag" apk_file="aliucord-manager-$tag.apk" mv -T ./app/build/outputs/apk/release/app-release.apk "../$apk_file" gh release create "$tag" \ --title "Aliucord Manager $tag" \ "../$apk_name" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}