498f407585
Introduce optional Apple account-backed credits with scoped gateway access while preserving local and BYOK paths. Refresh assistant behavior, tests, privacy disclosures, docs, and the website for the 2.0 experience.
118 lines
3.9 KiB
YAML
118 lines
3.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
validate:
|
|
name: Validate manifests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
|
|
- name: Validate test suite manifest
|
|
run: ./Scripts/run-tests.sh validate
|
|
- name: Check sensitive logs
|
|
run: |
|
|
python3 Scripts/check_sensitive_logs.py --self-test
|
|
python3 Scripts/check_sensitive_logs.py
|
|
|
|
lint:
|
|
name: SwiftLint
|
|
runs-on: macos-26
|
|
steps:
|
|
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
|
|
- name: Verify toolchain
|
|
run: |
|
|
set -euo pipefail
|
|
sudo xcode-select -s /Applications/Xcode_26.6.app
|
|
xcodebuild -version
|
|
test "$(xcodebuild -version | awk 'NR == 1 { print $2 }')" = "26.6"
|
|
test "$(xcrun --sdk iphonesimulator --show-sdk-version | cut -d. -f1)" = "26"
|
|
command -v swiftlint >/dev/null || brew install swiftlint
|
|
test "$(swiftlint version)" = "0.65.0"
|
|
- name: Run SwiftLint
|
|
run: swiftlint lint --quiet --strict
|
|
|
|
ios:
|
|
name: iOS / Extension
|
|
needs: [validate, lint]
|
|
runs-on: macos-26
|
|
steps:
|
|
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
|
|
- name: Verify toolchain
|
|
run: |
|
|
set -euo pipefail
|
|
sudo xcode-select -s /Applications/Xcode_26.6.app
|
|
xcodebuild -version
|
|
test "$(xcodebuild -version | awk 'NR == 1 { print $2 }')" = "26.6"
|
|
test "$(xcrun --sdk iphonesimulator --show-sdk-version | cut -d. -f1)" = "26"
|
|
- name: Install pinned XcodeGen
|
|
run: ./Scripts/install-xcodegen-ci.sh
|
|
- name: Generate project
|
|
run: ./Scripts/generate-xcodeproj.sh
|
|
- name: Run PR test preset
|
|
run: SKIP_GENERATE=1 ./Scripts/run-tests.sh pr
|
|
- name: Run account and purchase UI regression
|
|
run: |
|
|
set -euo pipefail
|
|
xcodebuild \
|
|
-project OSGKeyboard.xcodeproj \
|
|
-scheme OSGKeyboardUITests \
|
|
-destination 'platform=iOS Simulator,name=iPhone 17' \
|
|
-only-testing:OSGKeyboardUITests/AccountCenterUITests \
|
|
-onlyUsePackageVersionsFromResolvedFile \
|
|
test
|
|
- name: Build Release
|
|
run: |
|
|
set -euo pipefail
|
|
xcodebuild \
|
|
-project OSGKeyboard.xcodeproj \
|
|
-scheme OSGKeyboard \
|
|
-destination 'generic/platform=iOS Simulator' \
|
|
-configuration Release \
|
|
-onlyUsePackageVersionsFromResolvedFile \
|
|
CODE_SIGNING_ALLOWED=NO \
|
|
build
|
|
|
|
mac:
|
|
name: macOS
|
|
needs: [validate, lint]
|
|
runs-on: macos-26
|
|
steps:
|
|
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
|
|
- name: Verify toolchain
|
|
run: |
|
|
set -euo pipefail
|
|
sudo xcode-select -s /Applications/Xcode_26.6.app
|
|
xcodebuild -version
|
|
test "$(xcodebuild -version | awk 'NR == 1 { print $2 }')" = "26.6"
|
|
test "$(uname -m)" = "arm64"
|
|
- name: Install pinned XcodeGen
|
|
run: ./Scripts/install-xcodegen-ci.sh
|
|
- name: Generate project
|
|
run: ./Scripts/generate-xcodeproj.sh
|
|
- name: Run macOS tests
|
|
run: SKIP_GENERATE=1 ./Scripts/run-tests.sh mac
|
|
- name: Build Release
|
|
run: |
|
|
set -euo pipefail
|
|
xcodebuild \
|
|
-project OSGKeyboard.xcodeproj \
|
|
-scheme OSGKeyboardMac \
|
|
-destination 'platform=macOS' \
|
|
-configuration Release \
|
|
-onlyUsePackageVersionsFromResolvedFile \
|
|
CODE_SIGNING_ALLOWED=NO \
|
|
build
|