-
-
Notifications
You must be signed in to change notification settings - Fork 94
67 lines (56 loc) · 1.83 KB
/
simctl-tests.yml
File metadata and controls
67 lines (56 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: Simulator Tests (iOS)
# Tier-2 UI doc-example verification: compile for --target ios-simulator,
# install on a booted simulator, launch with PERRY_UI_TEST_MODE=1, check
# for clean exit. Slower than the PR-gate doc-tests because the simulator
# cold-boot takes 30-60s; run on tag pushes and manual dispatch, not on
# every PR.
on:
push:
tags: ['v*']
workflow_dispatch:
inputs:
device:
description: "Simulator device name (default: iPhone 15)"
required: false
default: "iPhone 15"
concurrency:
group: simctl-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
MACOSX_DEPLOYMENT_TARGET: "13.0"
jobs:
simctl:
runs-on: macos-14
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install iOS simulator Rust target
run: rustup target add aarch64-apple-ios-sim
- name: Cache cargo
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Build perry + iOS UI lib
run: |
cargo build --release -p perry -p perry-runtime -p perry-stdlib
cargo build --release -p perry-ui-ios --target aarch64-apple-ios-sim
- name: Run simctl doc-example verification
run: ./scripts/run_simctl_tests.sh
timeout-minutes: 45
env:
DEVICE: ${{ github.event.inputs.device || 'iPhone 15' }}
- name: Upload simctl logs
if: always()
uses: actions/upload-artifact@v7
with:
name: simctl-logs
path: target/perry-simctl-tests/*.log
if-no-files-found: warn