git.iko.soy/parseable-android
on master help sign in
Add prerelease creation on every push to master (#4)
439f972iko
.github/workflows/ci.yml+59
@@ -58,3 +58,62 @@ jobs:
58 name: lint-results
58 name: lint-results
59 path: app/build/reports/lint-results-release.html
59 path: app/build/reports/lint-results-release.html
60 retention-days: 14
60 retention-days: 14
61+
62+ prerelease:
63+ name: Create Prerelease
64+ needs: build
65+ if: github.event_name == 'push'
66+ runs-on: ubuntu-latest
67+ permissions:
68+ contents: write
69+
70+ steps:
71+ - name: Checkout code
72+ uses: actions/checkout@v4
73+
74+ - name: Set up JDK 17
75+ uses: actions/setup-java@v4
76+ with:
77+ java-version: '17'
78+ distribution: 'temurin'
79+
80+ - name: Setup Gradle
81+ uses: gradle/actions/setup-gradle@v4
82+
83+ - name: Setup Android SDK
84+ uses: android-actions/setup-android@v3
85+
86+ - name: Generate Gradle wrapper
87+ run: gradle wrapper --gradle-version 8.9
88+
89+ - name: Build release APK
90+ run: ./gradlew assembleRelease
91+
92+ - name: Rename APK with commit SHA
93+ run: |
94+ SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
95+ for apk in app/build/outputs/apk/release/*.apk; do
96+ mv "$apk" "app/build/outputs/apk/release/parseable-android-${SHORT_SHA}.apk"
97+ done
98+
99+ - name: Delete existing latest-master tag and release
100+ env:
101+ GH_TOKEN: ${{ github.token }}
102+ run: |
103+ gh release delete latest-master --yes || true
104+ git push origin :refs/tags/latest-master || true
105+
106+ - name: Create prerelease
107+ uses: softprops/action-gh-release@v2
108+ with:
109+ tag_name: latest-master
110+ name: "Latest Master Build (${{ github.sha }})"
111+ prerelease: true
112+ body: |
113+ Automated prerelease from commit ${{ github.sha }}.
114+
115+ **Commit:** [`${{ github.sha }}`](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }})
116+ **Branch:** `${{ github.ref_name }}`
117+ **Triggered by:** @${{ github.actor }}
118+ files: |
119+ app/build/outputs/apk/release/*.apk