Some checks failed
CI / Scraper / Test (pull_request) Failing after 9s
CI / UI / Build (pull_request) Failing after 9s
CI / Scraper / Lint (pull_request) Failing after 12s
CI / Scraper / Build (pull_request) Has been skipped
iOS CI / Build (push) Has been cancelled
iOS CI / Test (push) Has been cancelled
iOS CI / Build (pull_request) Failing after 2s
iOS CI / Test (pull_request) Has been skipped
- justfile: extract ios_scheme/ios_sim/ios_spm/runner_temp variables; add ios-resolve (SPM dep cache), ios-archive, ios-export recipes; pipe xcodebuild through xcpretty with raw fallback in ios-build/ios-test - ios.yaml: replace raw xcodebuild calls with just ios-build / just ios-test; install just via brew; uncommented archive job stub now calls just ios-archive && just ios-export; add justfile to path trigger - ci-scraper.yaml: install just via extractions/setup-just@v2; use just lint / just test; fix upload-artifact v3 -> v4; add justfile to path trigger - ci-ui.yaml: install just; use just ui-install / just ui-check / just ui-build; add justfile to path trigger
110 lines
3.6 KiB
YAML
110 lines
3.6 KiB
YAML
name: iOS CI
|
|
|
|
on:
|
|
push:
|
|
branches: ["v2", "main"]
|
|
paths:
|
|
- "ios/**"
|
|
- "justfile"
|
|
- ".gitea/workflows/ios.yaml"
|
|
pull_request:
|
|
branches: ["v2", "main"]
|
|
paths:
|
|
- "ios/**"
|
|
- "justfile"
|
|
- ".gitea/workflows/ios.yaml"
|
|
|
|
jobs:
|
|
# ── build ─────────────────────────────────────────────────────────────────
|
|
build:
|
|
name: Build
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install just
|
|
run: brew install just
|
|
|
|
- name: Install xcodegen
|
|
run: brew install xcodegen
|
|
|
|
- name: Build (simulator)
|
|
run: just ios-build
|
|
|
|
# ── test ──────────────────────────────────────────────────────────────────
|
|
test:
|
|
name: Test
|
|
runs-on: macos-latest
|
|
needs: build
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install just
|
|
run: brew install just
|
|
|
|
- name: Install xcodegen
|
|
run: brew install xcodegen
|
|
|
|
- name: Run unit tests
|
|
run: just ios-test
|
|
|
|
- name: Upload test results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-results
|
|
path: ios/LibNovel/test-results.xml
|
|
retention-days: 7
|
|
|
|
# ── archive (release IPA) ─────────────────────────────────────────────────
|
|
# Runs only on pushes to v2/main (not PRs).
|
|
# Requires secrets: APPLE_CERTIFICATE_BASE64, APPLE_CERTIFICATE_PASSWORD,
|
|
# APPLE_PROVISIONING_PROFILE_BASE64, KEYCHAIN_PASSWORD
|
|
# Also requires ios/LibNovel/ExportOptions.plist to exist.
|
|
#
|
|
# archive:
|
|
# name: Archive
|
|
# runs-on: macos-latest
|
|
# needs: [build, test]
|
|
# if: gitea.event_name == 'push'
|
|
#
|
|
# steps:
|
|
# - uses: actions/checkout@v4
|
|
#
|
|
# - name: Install just
|
|
# run: brew install just
|
|
#
|
|
# - name: Install xcodegen
|
|
# run: brew install xcodegen
|
|
#
|
|
# - name: Import signing certificate
|
|
# env:
|
|
# CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
|
|
# CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
|
|
# KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
|
# run: |
|
|
# KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
|
|
# security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
|
# security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
|
|
# security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
|
# echo "$CERTIFICATE_BASE64" | base64 --decode > $RUNNER_TEMP/cert.p12
|
|
# security import $RUNNER_TEMP/cert.p12 \
|
|
# -P "$CERTIFICATE_PASSWORD" \
|
|
# -A -t cert -f pkcs12 \
|
|
# -k $KEYCHAIN_PATH
|
|
# security list-keychain -d user -s $KEYCHAIN_PATH
|
|
#
|
|
# - name: Import provisioning profile
|
|
# env:
|
|
# PROFILE_BASE64: ${{ secrets.APPLE_PROVISIONING_PROFILE_BASE64 }}
|
|
# run: |
|
|
# PP_PATH=$RUNNER_TEMP/profile.mobileprovision
|
|
# echo "$PROFILE_BASE64" | base64 --decode > $PP_PATH
|
|
# mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
|
# cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles/
|
|
#
|
|
# - name: Archive & export IPA
|
|
# run: just ios-archive && just ios-export
|