-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (115 loc) · 3.96 KB
/
build-app.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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Build apps
run-name: Building apps
on:
workflow_dispatch:
push:
# only build if (non-ios) app files were modified
paths:
- 'app/**'
- '!app/.idea/**'
- '!app/.fleet/**'
- '!app/.gitignore'
- '!app/iosApp/**'
defaults:
run:
working-directory: ./app
jobs:
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
#cache: 'gradle'
- name: Setup Android SDK and licenses
uses: android-actions/setup-android@v3
- uses: actions/checkout@v4
- name: Retrieve the secret and decode it to a file
env:
KEYSTORE_B64: ${{ secrets.keystore_b64 }}
run: echo $KEYSTORE_B64 | base64 --decode > $GITHUB_WORKSPACE/signing-key.jks
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Build app
run: ./gradlew buildRelease
- name: Sign app
env:
KEYSTORE_PASSWORD: ${{ secrets.keystore_password }}
KEY_ALIAS: ${{ secrets.key_alias }}
KEY_PASSWORD: ${{ secrets.key_password }}
run: |
./gradlew assembleRelease \
-Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/signing-key.jks \
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \
-Pandroid.injected.signing.key.alias=$KEY_ALIAS \
-Pandroid.injected.signing.key.password=$KEY_PASSWORD
- name: "Deleting keystore file"
run: rm $GITHUB_WORKSPACE/signing-key.jks
- name: Upload apk as artifact
uses: actions/upload-artifact@v4
with:
name: app-build
path: app/composeApp/build/outputs/apk/release/composeApp-release.apk
build-desktop:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
#cache: 'gradle'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Build jar
run: ./gradlew packageUberJarForCurrentOS
- name: Rename file
run: mv composeApp/build/compose/jars/com.pras.slugcourses-windows-x64-1.0.0.jar composeApp/build/compose/jars/com.pras.slugcourses.jar
- name: Upload jar as artifact
uses: actions/upload-artifact@v4
with:
name: universal-jar-build
path: app/composeApp/build/compose/jars/com.pras.slugcourses.jar
- name: Build exe
run: ./gradlew packageReleaseExe
- name: Upload windows exe as artifact
uses: actions/upload-artifact@v4
with:
name: exe-build
path: app/composeApp/build/compose/binaries/main-release/exe/com.pras.slugcourses-1.0.0.exe
# build-ios:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v4
#
# - name: Set up JDK 17
# uses: actions/setup-java@v4
# with:
# java-version: '17'
# distribution: 'temurin'
## cache: 'gradle'
##
## - name: Setup Gradle
## uses: gradle/actions/setup-gradle@v3
#
# - name: Prepare build
# working-directory: .
# run: ./gradlew iosArm64Binaries
#
# - name: Build xcarchive
# working-directory: .
# run: xcodebuild build -workspace iosApp/iosApp.xcodeproj/project.xcworkspace/ -configuration Release -scheme iosApp -sdk iphoneos -destination name='iPhone 15' -verbose -archivePath iosOut/SlugCourses.xcarchive archive -allowProvisioningUpdates
#
# - name: Create ipa (may not work)
# working-directory: iosOut/SlugCourses.xcarchive/Products/Applications
# run: zip -r SlugCourses.ipa Slug\ Courses.app/
#
# - name: Upload ipa as artifact
# uses: actions/upload-artifact@v4
# with:
# name: ipa-build-untested
# path: iosOut/SlugCourses.xcarchive/Products/Applications/SlugCourses.ipa