|
1 | 1 | name: Build Release
|
2 | 2 | on:
|
3 |
| - workflow_dispatch: |
4 |
| - inputs: |
5 |
| - beta: |
6 |
| - type: boolean |
7 |
| - description: Is beta? |
8 |
| - draft: |
9 |
| - type: boolean |
10 |
| - description: Is draft? |
| 3 | + workflow_dispatch: |
| 4 | + inputs: |
| 5 | + versionName: |
| 6 | + required: true |
| 7 | + description: This releases version name |
| 8 | + default: "1.0.0" |
| 9 | + versionCode: |
| 10 | + required: true |
| 11 | + description: This releases version code |
| 12 | + default: "100" |
| 13 | + |
11 | 14 | jobs:
|
12 |
| - build: |
13 |
| - runs-on: ubuntu-latest |
14 |
| - steps: |
15 |
| - - name: Checkout |
16 |
| - uses: actions/checkout@v3 |
| 15 | + build: |
| 16 | + runs-on: ubuntu-latest |
| 17 | + steps: |
| 18 | + - name: Checkout |
| 19 | + uses: actions/checkout@master |
17 | 20 |
|
18 |
| - - name: Setup JDK 17 |
19 |
| - uses: actions/setup-java@v4 |
20 |
| - with: |
21 |
| - distribution: 'temurin' |
22 |
| - java-version: '17' |
23 |
| - cache: 'gradle' |
| 21 | + - name: Setup JDK 17 |
| 22 | + uses: actions/setup-java@v2 |
| 23 | + with: |
| 24 | + java-version: 17 |
| 25 | + distribution: 'temurin' |
| 26 | + cache: 'gradle' |
| 27 | + |
| 28 | + - name: Setup Android SDK |
| 29 | + uses: android-actions/[email protected] |
| 30 | + |
| 31 | + - name: Set Version |
| 32 | + |
| 33 | + with: |
| 34 | + gradlePath: app/build.gradle.kts |
| 35 | + versionCode: ${{github.event.inputs.versionCode}} |
| 36 | + versionName: ${{github.event.inputs.versionName}} |
| 37 | + |
| 38 | + - name: Build Signed APK |
| 39 | + run: | |
| 40 | + echo "${{ secrets.keystore }}" | base64 -d > $GITHUB_WORKSPACE/signing-key.jks |
| 41 | + chmod +x ./gradlew |
| 42 | + ./gradlew packageReleaseUniversalApk -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/signing-key.jks -Pandroid.injected.signing.store.password=${{ secrets.keystore_password }} -Pandroid.injected.signing.key.alias=${{ secrets.key_alias }} -Pandroid.injected.signing.key.password=${{ secrets.key_password }} |
24 | 43 |
|
25 |
| - - name: Setup Android SDK |
26 |
| - uses: android-actions/[email protected] |
27 |
| - |
28 |
| - - name: Extract Version |
29 |
| - id: extract_version |
30 |
| - run: | |
31 |
| - VERSION=$(grep -oP 'versionName = "\K[^"]+' app/build.gradle.kts) |
32 |
| - VERSION_CODE=$(grep -oP 'versionCode = \K\d+' app/build.gradle.kts) |
33 |
| - echo "version=$VERSION" >> $GITHUB_OUTPUT |
34 |
| - echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT |
35 |
| - if [ ${{ inputs.beta }} == true ]; then BETA=true; else BETA=false; fi |
36 |
| - echo "beta=$BETA" >> $GITHUB_OUTPUT |
37 |
| - TAG="v$VERSION" |
38 |
| - echo "tag=$TAG" >> $GITHUB_OUTPUT |
39 |
| - |
40 |
| - - name: Build Signed APK |
41 |
| - run: | |
42 |
| - echo "${{ secrets.keystore }}" | base64 -d > $GITHUB_WORKSPACE/signing-key.jks |
43 |
| - chmod +x ./gradlew |
44 |
| - ./gradlew assembleRelease \ |
45 |
| - -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/signing-key.jks \ |
46 |
| - -Pandroid.injected.signing.store.password=${{ secrets.keystore_password }} \ |
47 |
| - -Pandroid.injected.signing.key.alias=${{ secrets.key_alias }} \ |
48 |
| - -Pandroid.injected.signing.key.password=${{ secrets.key_password }} |
49 |
| - |
50 |
| - - name: Find and Rename APK |
51 |
| - run: | |
52 |
| - APK_PATH=$(find . -name "*release*.apk" | head -n 1) |
53 |
| - if [ -z "$APK_PATH" ]; then |
54 |
| - echo "No APK file found" |
55 |
| - exit 1 |
56 |
| - fi |
57 |
| - mv "$APK_PATH" ./app-release.apk |
58 |
| - cp ./app-release.apk ./BunnyXposed-${{ steps.extract_version.outputs.version }}.apk |
59 |
| - echo "APKs renamed and copied" |
60 |
| - |
61 |
| - - name: Create Release |
62 |
| - env: |
63 |
| - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
64 |
| - run: | |
65 |
| - PRERELEASE_FLAG="" |
66 |
| - if [ "${{ steps.extract_version.outputs.beta }}" = "true" ]; then |
67 |
| - PRERELEASE_FLAG="--prerelease" |
68 |
| - fi |
69 |
| - DRAFT_FLAG="" |
70 |
| - if [ "${{ inputs.draft }}" = "true" ]; then |
71 |
| - DRAFT_FLAG="--draft" |
72 |
| - fi |
73 |
| - git config --local user.email "[email protected]" |
74 |
| - git config --local user.name "GitHub Actions" |
75 |
| - git tag "${{ steps.extract_version.outputs.tag }}" |
76 |
| - git push origin "${{ steps.extract_version.outputs.tag }}" |
77 |
| - gh release create "${{ steps.extract_version.outputs.tag }}" \ |
78 |
| - --title "${{ steps.extract_version.outputs.version }}" \ |
79 |
| - --generate-notes \ |
80 |
| - $PRERELEASE_FLAG \ |
81 |
| - $DRAFT_FLAG \ |
82 |
| - ./*.apk |
| 44 | + - name: Release |
| 45 | + run: | |
| 46 | + mv app/build/outputs/apk_from_bundle/release/app-release-universal.apk ./app-release.apk |
| 47 | + git config --local user.email "[email protected]" |
| 48 | + git config --local user.name "GitHub Actions" |
| 49 | + tag="${{ github.event.inputs.versionCode }}" |
| 50 | + git tag "$tag" |
| 51 | + git push origin "$tag" |
| 52 | + gh release create "$tag" \ |
| 53 | + --title "${{ github.event.inputs.versionName }}" \ |
| 54 | + --generate-notes \ |
| 55 | + ./*.apk |
| 56 | + env: |
| 57 | + GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' |
0 commit comments