Skip to content

Commit

Permalink
Use Ubuntu for UI tests
Browse files Browse the repository at this point in the history
The UI tests no longer have reproducibility issues, so we can run them
on another platform that is less restrained by GitHub Actions capacity.
  • Loading branch information
madsmtm committed Nov 14, 2024
1 parent a46ab13 commit eb006f7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 29 deletions.
60 changes: 31 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ jobs:

ui:
name: Compiler UI
runs-on: macos-13
runs-on: ubuntu-latest
needs:
- fmt
- lint
Expand Down Expand Up @@ -218,7 +218,7 @@ jobs:
key: cargo-${{ github.job }}-${{ matrix.name }}-${{ hashFiles('**/Cargo.lock') }}

- name: Run UI tests
run: cargo run --features=run --bin=test-ui
run: cargo run --features=run,gnustep-1-7 --bin=test-ui

- name: Check diff
if: ${{ always() }}
Expand Down Expand Up @@ -266,7 +266,7 @@ jobs:

header-translator:
name: Verify header translator output
runs-on: macos-15
runs-on: macos-15-xlarge
needs:
- fmt
- lint
Expand Down Expand Up @@ -299,7 +299,7 @@ jobs:
# This will take ~40 minutes
if: ${{ github.head_ref == 'new-versions' || github.ref_name == 'ci-full' }}
name: Check framework features
runs-on: macos-12
runs-on: macos-15-xlarge
needs:
- fmt
- lint
Expand All @@ -322,8 +322,8 @@ jobs:
run: cargo run --bin=check_framework_features

test-macos:
name: Test macOS 12
runs-on: macos-12
name: Test macOS 15 Aarch64
runs-on: macos-15-xlarge
needs:
- fmt
# Currently the slowest check, so let's get it started as soon as possible
Expand Down Expand Up @@ -355,7 +355,7 @@ jobs:
# if: ${{ env.FULL }}
if: ${{ github.head_ref == 'new-versions' || github.ref_name == 'ci-full' }}
name: ${{ matrix.name }}
runs-on: ${{ matrix.os || 'macos-latest' }}
runs-on: ${{ matrix.os }}
needs:
- fmt
- lint
Expand All @@ -366,53 +366,55 @@ jobs:
fail-fast: true
matrix:
include:
- name: Test macOS 13
- name: Test macOS 12 x86_64
target: x86_64-apple-darwin
os: macos-13
os: macos-12-large
frameworks: MACOS_13
- name: Test macOS 14
- name: Test macOS 15 AArch64
target: aarch64-apple-darwin
os: macos-14
os: macos-15-xlarge
frameworks: MACOS_14
- name: Build macOS AArch64
target: aarch64-apple-darwin
frameworks: MACOS_11
- name: Test macOS old SDK
target: x86_64-apple-darwin
# Oldest macOS version we support
sdk: "10.12"
frameworks: MACOS_10_12
# The SDK itself only supports compiling build scripts for x86_64
os: macos-13
- name: Test macOS nightly
- name: Test macOS 14 Aarch64 nightly
target: aarch64-apple-darwin
os: macos-14-xlarge
frameworks: MACOS_14
nightly: true
frameworks: MACOS_11
- name: Build macOS 32bit
target: i686-apple-darwin
# The SDK itself only supports compiling build scripts for x86_64
os: macos-13-large
frameworks: MACOS_10_13
nightly: true
build-std: true
# Newest SDK that supports 32-bit
sdk: "10.13"
frameworks: MACOS_10_13
# The SDK itself only supports compiling build scripts for x86_64
os: macos-13
- name: Build iOS simulator ARM64
- name: Build iOS simulator Aarch64
target: aarch64-apple-ios-sim
os: macos-14-xlarge
frameworks: IOS_10
- name: Build iOS ARM64
- name: Build iOS Aarch64
target: aarch64-apple-ios
os: macos-14-xlarge
frameworks: IOS_10
- name: Build iOS ARMv7s
target: armv7s-apple-ios
nightly: true
build-std: true
os: macos-14-xlarge
frameworks: IOS_10
- name: Build iOS 32bit x86
- name: Build iOS x86
target: i386-apple-ios
nightly: true
build-std: true
os: macos-14-xlarge
frameworks: IOS_10
- name: Test macOS 14 x86_64 with 10.12 SDK
target: x86_64-apple-darwin
os: macos-14-large
frameworks: MACOS_10_12
# Oldest macOS version we support.
# The SDK itself only supports compiling build scripts for x86_64.
sdk: "10.12"

env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
Expand Down
6 changes: 6 additions & 0 deletions crates/test-ui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ block2 = { path = "../block2" }
objc2 = { path = "../objc2" }
objc2-foundation = { path = "../../framework-crates/objc2-foundation" }

# To make CI work
[target.'cfg(not(target_vendor = "apple"))'.dependencies]
block2 = { path = "../block2", features = ["gnustep-1-7"] }
objc2 = { path = "../objc2", features = ["gnustep-1-7"] }
objc2-foundation = { path = "../../framework-crates/objc2-foundation", features = ["gnustep-1-7"] }

[[bin]]
name = "test-ui"
required-features = ["run"]
Expand Down

0 comments on commit eb006f7

Please sign in to comment.