mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
name: Apple
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "apple/**"
|
|
- "version.properties"
|
|
- "packaging/version/**"
|
|
- "crates/vnidrop/**"
|
|
- "crates/uniffi-bindgen/**"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
- "Makefile"
|
|
- "config.mk"
|
|
- "make/**"
|
|
- ".github/workflows/apple.yml"
|
|
- "localization/**"
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- "apple/**"
|
|
- "version.properties"
|
|
- "packaging/version/**"
|
|
- "crates/vnidrop/**"
|
|
- "crates/uniffi-bindgen/**"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
- "Makefile"
|
|
- "config.mk"
|
|
- "make/**"
|
|
- ".github/workflows/apple.yml"
|
|
- "localization/**"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: apple-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-test:
|
|
runs-on: macos-latest
|
|
timeout-minutes: 75
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Select Xcode
|
|
# Pin so the simulator device name below stays predictable.
|
|
run: sudo xcode-select -s /Applications/Xcode.app
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: aarch64-apple-ios,aarch64-apple-ios-sim,x86_64-apple-ios,aarch64-apple-darwin
|
|
|
|
- name: Cache Cargo
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: apple-cargo-${{ hashFiles('Cargo.lock') }}
|
|
restore-keys: apple-cargo-
|
|
|
|
- name: Install XcodeGen
|
|
run: brew install xcodegen
|
|
|
|
- name: Install SwiftLint
|
|
# Required by the VniDrop target's SwiftLint build phase (typed-resources rules).
|
|
run: brew install swiftlint
|
|
|
|
- name: Install Bun
|
|
# The Apple l10n catalog (Localizable.xcstrings) and L10n.swift are
|
|
# generated from localization/strings.json at build time, not tracked.
|
|
uses: oven-sh/setup-bun@v2
|
|
|
|
- name: Build and test Apple app
|
|
run: make check-apple
|
|
|
|
- name: Build direct-download macOS target (Sparkle, unsigned)
|
|
# Keeps the VniDropDirect (.dmg/Sparkle) target compiling; signing and
|
|
# notarization happen only in apple-release.yml on a tag.
|
|
run: make build-apple-macos-direct
|