name: Android Release Build and Publish on: push: tags: - 'v*' # 当推送一个新的版本标签(例如 v1.0.0)时触发 workflow_dispatch: # 支持手动触发 jobs: build: name: Build APK and Release runs-on: ubuntu-latest steps: # Step 1: Check out the repository - name: Checkout repository uses: actions/checkout@v3 # Step 2: Set up JDK - name: Set up JDK 17 uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '17' # Step 3: Grant execution permissions for Gradle wrapper - name: Grant execute permission for gradlew run: chmod +x ./gradlew # Step 4: Clean the project - name: Clean build directory run: ./gradlew clean # Step 5: Build the release APK - name: Build release APK run: ./gradlew assembleRelease # Step 6: Archive the generated APK - name: Archive release APK uses: actions/upload-artifact@v3 with: name: app-release.apk path: app/build/outputs/apk/debug/app-release.apk # Step 7: Create a GitHub Release - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref_name }} # 使用版本标签 release_name: Release ${{ github.ref_name }} draft: false prerelease: false # Step 8: Upload APK to the Release - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/outputs/apk/debug/app-release.apk asset_name: app-release.apk asset_content_type: application/vnd.android.package-archive