-
Notifications
You must be signed in to change notification settings - Fork 27
107 lines (92 loc) · 3.85 KB
/
debug.yml
File metadata and controls
107 lines (92 loc) · 3.85 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
name: Android Nightly APK
on:
workflow_dispatch:
inputs:
version_name:
description: "Nightly version label, e.g. 0.85"
required: true
type: string
artifact_name:
description: "Artifact name suffix, e.g. nightly"
required: false
default: nightly
type: string
publish_github_prerelease:
description: "Create a GitHub pre-release and attach the nightly APK"
required: true
default: true
type: boolean
jobs:
build-nightly:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
cache: gradle
- name: Make Gradle executable
run: chmod +x ./gradlew
- name: Decode nightly keystore
env:
PASTIERA_NIGHTLY_KEYSTORE_B64: ${{ secrets.PASTIERA_NIGHTLY_KEYSTORE_B64 }}
run: |
mkdir -p release
echo "$PASTIERA_NIGHTLY_KEYSTORE_B64" | base64 -d > release/pastiera-nightly.jks
- name: Create nightly keystore.properties
env:
PASTIERA_NIGHTLY_KEYSTORE_PASSWORD: ${{ secrets.PASTIERA_NIGHTLY_KEYSTORE_PASSWORD }}
PASTIERA_NIGHTLY_KEY_ALIAS: ${{ secrets.PASTIERA_NIGHTLY_KEY_ALIAS }}
PASTIERA_NIGHTLY_KEY_PASSWORD: ${{ secrets.PASTIERA_NIGHTLY_KEY_PASSWORD }}
run: |
cat > release/keystore.properties <<EOF
nightlyStoreFile=pastiera-nightly.jks
nightlyStorePassword=$PASTIERA_NIGHTLY_KEYSTORE_PASSWORD
nightlyKeyAlias=$PASTIERA_NIGHTLY_KEY_ALIAS
nightlyKeyPassword=$PASTIERA_NIGHTLY_KEY_PASSWORD
EOF
- name: Compute nightly version metadata
id: nightly_meta
run: |
chmod +x ./scripts/nightly-version.sh
./scripts/nightly-version.sh "${{ inputs.version_name }}" >> "$GITHUB_OUTPUT"
- name: Run nightly debug-flavor unit tests
run: |
./gradlew :app:testNightlyDebugUnitTest \
-PPASTIERA_VERSION_NAME=${{ inputs.version_name }} \
-PPASTIERA_NIGHTLY_VERSION_SUFFIX=-nightly.${{ steps.nightly_meta.outputs.timestamp }}
- name: Build nightly APK
run: |
./gradlew :app:assembleNightlyRelease \
-PPASTIERA_VERSION_NAME=${{ inputs.version_name }} \
-PPASTIERA_NIGHTLY_VERSION_SUFFIX=-nightly.${{ steps.nightly_meta.outputs.timestamp }}
- name: Compute checksums
run: sha256sum app/build/outputs/apk/nightly/release/app-nightly-release.apk | tee app/build/outputs/apk/nightly/release/app-nightly-release.apk.sha256
- name: Upload nightly APK artifact
uses: actions/upload-artifact@v4
with:
name: pastiera-${{ inputs.artifact_name }}-${{ steps.nightly_meta.outputs.full_version }}
path: |
app/build/outputs/apk/nightly/release/app-nightly-release.apk
app/build/outputs/apk/nightly/release/app-nightly-release.apk.sha256
- name: Prepare nightly pre-release notes
if: ${{ inputs.publish_github_prerelease }}
run: |
cp .github/release-templates/debug-prerelease.md /tmp/nightly-prerelease-notes.md
- name: Create GitHub nightly pre-release
if: ${{ inputs.publish_github_prerelease }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.nightly_meta.outputs.tag_name }}
name: Pastiera Nightly v${{ steps.nightly_meta.outputs.full_version }}
body_path: /tmp/nightly-prerelease-notes.md
prerelease: true
generate_release_notes: true
files: |
app/build/outputs/apk/nightly/release/app-nightly-release.apk
app/build/outputs/apk/nightly/release/app-nightly-release.apk.sha256