Skip to content

Commit

Permalink
Build iOS app on CI (#1347)
Browse files Browse the repository at this point in the history
* Build iOS app on CI

We use Fastlane but only for building

* Use App Store Connect API in Fastlane

* Speed up iOS build

No need to build x64, and then also build arm64 via Xcode.

* Stop running iOS tests for now
  • Loading branch information
chrisbanes committed Jul 2, 2023
1 parent 41e47e0 commit 6510df7
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 10 deletions.
24 changes: 22 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ jobs:
ORG_GRADLE_PROJECT_TIVI_TVDB_API_KEY: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TVDB_API_KEY }}
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_ID }}
ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET: ${{ secrets.ORG_GRADLE_PROJECT_TIVI_TRAKT_CLIENT_SECRET }}
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60

steps:
- uses: actions/checkout@v3
Expand All @@ -177,8 +178,19 @@ jobs:
with:
gradle-home-cache-cleanup: true

- name: Build iOS libraries
run: ./gradlew spotlessCheck :shared:linkIosX64 iosX64Test
# - name: Test
# run: ./gradlew spotlessCheck iosArm64Test

- name: Build iOS application
run: fastlane beta
working-directory: ios-app/Tivi
env:
API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }}
API_KEY_CONTENTS: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENTS }}
ISSUER_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_ISSUER_ID }}
MATCH_PASSWORD: ${{ secrets.FASTLANE_MATCH_PASSWORD }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.FASTLANE_MATCH_GH_PAT }}
TIVI_BUILD_NUMBER: ${{ github.run_number }}

- name: Upload reports
if: always()
Expand All @@ -196,6 +208,14 @@ jobs:
path: |
**/build/test-results/*
- name: Upload build logs
if: always()
uses: actions/upload-artifact@v3
with:
name: ios-logs
path: |
**/fastlane-buildlog
publish-android:
if: github.ref == 'refs/heads/main'
needs: [android, ios, desktop]
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/publish-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,9 @@ jobs:
- run: fastlane beta
working-directory: ios-app/Tivi
env:
# APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APPSTORE_CONNECT_TEAM_ID }}
# DEVELOPER_PORTAL_TEAM_ID: ${{ secrets.DEVELOPER_PORTAL_TEAM_ID }}
FASTLANE_USER: ${{ secrets.APPSTORE_CONNECT_USERNAME }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.APPSTORE_CONNECT_PASSWORD }}
API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }}
API_KEY_CONTENTS: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENTS }}
ISSUER_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_ISSUER_ID }}
MATCH_PASSWORD: ${{ secrets.FASTLANE_MATCH_PASSWORD }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.FASTLANE_MATCH_GH_PAT }}
TIVI_BUILD_NUMBER: ${{ github.run_number }}
Expand Down
20 changes: 17 additions & 3 deletions ios-app/Tivi/fastlane/Fastfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,33 @@
default_platform(:ios)

platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do

lane :build do
setup_ci if ENV['CI']

api_key = app_store_connect_api_key(
key_id: ENV['API_KEY_ID'],
issuer_id: ENV['ISSUER_KEY_ID'],
key_content: ENV['API_KEY_CONTENTS'],
is_key_content_base64: true
)

match(type: 'appstore')

increment_build_number(
xcodeproj: "Tivi.xcodeproj",
build_number: ENV['TIVI_BUILD_NUMBER']
)

build_app(
scheme: "Tivi",
clean: true,
buildlog_path: "build/fastlane-buildlog"
)
end

lane :beta do
build
upload_to_testflight(skip_waiting_for_build_processing: true)
end

end
10 changes: 9 additions & 1 deletion ios-app/Tivi/fastlane/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,21 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do

## iOS

### ios build

```sh
[bundle exec] fastlane ios build
```



### ios beta

```sh
[bundle exec] fastlane ios beta
```

Push a new beta build to TestFlight


----

Expand Down

0 comments on commit 6510df7

Please sign in to comment.