-
-
Notifications
You must be signed in to change notification settings - Fork 85
87 lines (73 loc) · 3.01 KB
/
nightly.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: Nightly
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
env:
SKIP_RELEASE: "yes"
SIGNING_KEYSTORE_FILE: ./secrets/signing_key.jks
BUILD_APK_FILE: ./app/build/outputs/apk/release/app-release.apk
OUTPUT_DIR: ./dist
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 18.x
cache: npm
- uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 17
cache: gradle
- name: 🚧 Do prerequisites
run: npm ci
- name: 🔢 Get version
id: app_version
run: echo "version=$(npm run --silent version:print-nightly)" >> $GITHUB_OUTPUT
- name: 🔎 Check for release
run: echo "SKIP_RELEASE=$(npm run --silent git:tag-exists-yn -- $TAG_NAME)" >> $GITHUB_ENV
env:
TAG_NAME: v${{ steps.app_version.outputs.version }}
- name: 🔨 Generate certificate
if: env.SKIP_RELEASE == 'no'
run: |
mkdir -p $(dirname $SIGNING_KEYSTORE_FILE)
echo $SIGNING_KEYSTORE_FILE_CONTENT | base64 -di > $SIGNING_KEYSTORE_FILE
ls $(dirname $SIGNING_KEYSTORE_FILE)
readlink -f $SIGNING_KEYSTORE_FILE
env:
SIGNING_KEYSTORE_FILE_CONTENT: ${{ secrets.SIGNING_KEYSTORE_FILE }}
- name: 🔨 Build apk
if: env.SKIP_RELEASE == 'no'
run: |
npm run prebuild
chmod +x ./gradlew
./gradlew build
env:
SIGNING_KEYSTORE_FILE: ../${{ env.SIGNING_KEYSTORE_FILE }}
SIGNING_KEYSTORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: 📝 Rename apk
if: env.SKIP_RELEASE == 'no'
run: mv $BUILD_APK_FILE $OUTPUT_DIR/symphony-nightly-v$APP_VERSION_NAME.apk
env:
APP_VERSION_NAME: ${{ steps.app_version.outputs.version }}
- name: 🚀 Upload apk
if: env.SKIP_RELEASE == 'no'
uses: ncipollo/release-action@v1
with:
tag: v${{ steps.app_version.outputs.version }}
artifacts: ${{ env.OUTPUT_DIR }}/*
generateReleaseNotes: true
draft: false
prerelease: true
artifactErrorsFailBuild: true
- name: 🔖 Was Release skipped?
if: env.SKIP_RELEASE == 'yes'
run: echo "Skipping since tag $TAG_NAME already exists"
env:
TAG_NAME: v${{ steps.app_version.outputs.version }}