Skip to content

Commit 77971bd

Browse files
authored
Merge pull request orgzly-revived#693 from amberin/nightly-release
Add workflow for publishing a "nightly" trunk build
2 parents 79e4d3b + 7b99b12 commit 77971bd

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
name: Build and publish "nightly" release artifacts
2+
3+
# Based on https://github.com/refined-github/refined-github/blob/5cda3447bf80cca0c64ae5eb79779ecd62fec18e/.github/workflows/release.yml#L30-L32
4+
5+
on:
6+
schedule:
7+
- cron: '41 01 * * *'
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: write
12+
13+
jobs:
14+
15+
AddTag:
16+
outputs:
17+
created: ${{ steps.daily-version.outputs.created }}
18+
version: ${{ steps.daily-version.outputs.version }}
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: fregante/daily-version-action@v2
23+
name: Tag commit unless already tagged
24+
id: daily-version
25+
with:
26+
prefix: 'nightly-unstable-'
27+
28+
BuildAndRelease:
29+
needs: AddTag
30+
if: github.event_name == 'workflow_dispatch' || needs.AddTag.outputs.created
31+
runs-on: ubuntu-latest
32+
steps:
33+
34+
- name: Checkout code
35+
uses: actions/checkout@v4
36+
37+
- name: Store version/tag name in shell env variable
38+
run: echo "VERSION=${{ needs.AddTag.outputs.version }}" >> $GITHUB_ENV
39+
40+
- name: Setup Java
41+
uses: actions/setup-java@v4
42+
with:
43+
distribution: temurin
44+
java-version: 17
45+
46+
- name: Setup Gradle
47+
uses: gradle/actions/setup-gradle@v4
48+
49+
- name: Setup build tool version variable
50+
shell: bash
51+
run: |
52+
BUILD_TOOL_VERSION=$(ls /usr/local/lib/android/sdk/build-tools/ | tail -n 1)
53+
echo "BUILD_TOOL_VERSION=$BUILD_TOOL_VERSION" >> $GITHUB_ENV
54+
echo Last build tool version is: $BUILD_TOOL_VERSION
55+
56+
# F-Droid APK
57+
58+
- name: Assemble F-Droid APK
59+
run: ./gradlew :app:assembleFdroidRelease --stacktrace
60+
env:
61+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62+
63+
- name: Sign F-Droid APK
64+
uses: r0adkll/sign-android-release@v1
65+
id: sign_fdroid_apk
66+
with:
67+
releaseDirectory: app/build/outputs/apk/fdroid/release
68+
signingKeyBase64: ${{ secrets.APK_SIGNING_KEYSTORE_FILE }}
69+
alias: orgzly-revived-20231013
70+
keyStorePassword: ${{ secrets.APK_SIGNING_KEYSTORE_PASSWORD }}
71+
env:
72+
BUILD_TOOLS_VERSION: ${{ env.BUILD_TOOL_VERSION }}
73+
74+
- name: Rename F-Droid APK file
75+
run: mv ${{steps.sign_fdroid_apk.outputs.signedReleaseFile}} orgzly-revived-fdroid-${{ env.VERSION }}.apk
76+
77+
# "Premium" APK
78+
79+
- name: Add Dropbox app identifier
80+
shell: bash
81+
run: |
82+
echo "dropbox.app_key = \"${{ secrets.DROPBOX_APP_KEY }}\"" >> app.properties
83+
echo "dropbox.app_key_schema = \"db-${{ secrets.DROPBOX_APP_KEY }}\"" >> app.properties
84+
85+
- name: Assemble "premium" APK
86+
run: ./gradlew :app:assemblePremiumRelease --stacktrace
87+
env:
88+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89+
90+
- name: Sign "premium" APK
91+
uses: r0adkll/sign-android-release@v1
92+
id: sign_premium_apk
93+
with:
94+
releaseDirectory: app/build/outputs/apk/premium/release
95+
signingKeyBase64: ${{ secrets.APK_SIGNING_KEYSTORE_FILE }}
96+
alias: orgzly-revived-20231013
97+
keyStorePassword: ${{ secrets.APK_SIGNING_KEYSTORE_PASSWORD }}
98+
env:
99+
BUILD_TOOLS_VERSION: ${{ env.BUILD_TOOL_VERSION }}
100+
101+
- name: Rename "premium" APK file
102+
run: mv ${{steps.sign_premium_apk.outputs.signedReleaseFile}} orgzly-revived-${{ env.VERSION }}.apk
103+
104+
# "Premium" AAB
105+
106+
- name: Assemble "premium" AAB
107+
run: ./gradlew :app:bundlePremiumRelease --stacktrace
108+
env:
109+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
110+
111+
- name: Sign "premium" AAB
112+
uses: r0adkll/sign-android-release@v1
113+
id: sign_premium_aab
114+
with:
115+
releaseDirectory: app/build/outputs/bundle/premiumRelease
116+
signingKeyBase64: ${{ secrets.APK_SIGNING_KEYSTORE_FILE }}
117+
alias: orgzly-revived-20231013
118+
keyStorePassword: ${{ secrets.APK_SIGNING_KEYSTORE_PASSWORD }}
119+
env:
120+
BUILD_TOOLS_VERSION: ${{ env.BUILD_TOOL_VERSION }}
121+
122+
- name: Rename "premium" AAB file
123+
run: mv ${{steps.sign_premium_aab.outputs.signedReleaseFile}} orgzly-revived-${{ env.VERSION }}.aab
124+
125+
- name: Upload artifacts and create Github release
126+
uses: softprops/action-gh-release@v2
127+
with:
128+
files: |
129+
*.apk
130+
*.aab
131+
make_latest: 'false'
132+
tag_name: ${{ needs.AddTag.outputs.version }}
133+
body: Install at your own risk! These "unstable" builds are generated once a day from the current main branch (if it has changed).
134+
generate_release_notes: true

0 commit comments

Comments
 (0)