1010
1111jobs :
1212 build :
13- name : 🔨 Build
14- runs-on : ubuntu-24.04
13+ name : 🔨 Build - ${{ matrix.name }}
14+ runs-on : ${{ matrix.os }}
1515 strategy :
1616 fail-fast : false
1717 matrix :
1818 include :
1919 - name : 📱 Android App
2020 gradle_module : tasks-app-android
21+ os : ubuntu-24.04
2122 - name : 🖥️ Desktop App
2223 gradle_module : tasks-app-desktop
24+ os : ubuntu-24.04
25+ - name : 🍎 iOS App
26+ gradle_module : tasks-app-ios
27+ os : macos-15
2328 permissions :
2429 contents : write
2530 checks : write
@@ -30,12 +35,24 @@ jobs:
3035 - uses : actions/checkout@v4
3136 - uses : ./.github/actions/setup-jdk-gradle
3237
38+ - name : Cache Gradle
39+ if : ${{ matrix.gradle_module == 'tasks-app-ios' }}
40+ uses : actions/cache@v4
41+ with :
42+ path : |
43+ .gradle
44+ $HOME/.m2/repository
45+ $HOME/.konan
46+ key : gradle-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties', '**/*.gradle.kts', '**/*.gradle') }}
47+ restore-keys : |
48+ gradle-${{ runner.os }}-
49+
3350 - name : 🔓 Decrypt secrets
3451 env :
3552 PLAYSTORE_SECRET_PASSPHRASE : ${{ secrets.PLAYSTORE_SECRET_PASSPHRASE }}
3653 run : ./_ci/decrypt_secrets.sh
3754
38- - name : ${{ matrix.name }}
55+ - name : ${{ matrix.gradle_module }}
3956 env :
4057 PLAYSTORE_SECRET_PASSPHRASE : ${{ secrets.PLAYSTORE_SECRET_PASSPHRASE }}
4158 KEYSTORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
5067 -Pplaystore.keystore.file="${PWD}/_ci/tasksApp.keystore" \
5168 -Pplaystore.keystore.password="${KEYSTORE_PASSWORD}" \
5269 -Pplaystore.keystore.key_password="${KEYSTORE_KEY_PASSWORD}"
70+ elif [ "${gradle_module}" = "tasks-app-ios" ]; then
71+ cd tasks-app-ios
72+ IOS_TARGET=simulator xcodebuild \
73+ -project Taskfolio.xcodeproj \
74+ -scheme Taskfolio \
75+ -sdk iphonesimulator \
76+ -arch arm64 \
77+ -configuration Debug \
78+ build \
79+ CODE_SIGNING_ALLOWED=NO \
80+ CODE_SIGN_IDENTITY="" \
81+ CODE_SIGNING_REQUIRED=NO
5382 fi
0 commit comments