Add support for apple platform command line options #2909
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
# One active job per PR, cancel older ones on push | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
integration_tests: | |
name: Build and Test | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
- name: Build and Test | |
run: | | |
# non-iOS tests | |
bazelisk test \ | |
-- \ | |
//... \ | |
-//tests/ios/... | |
# Clean up after simctl (https://github.com/bazelbuild/rules_apple/issues/185) | |
pgrep Simulator | xargs kill || true | |
# Create single ephemeral iOS sim | |
SIMULATOR_UDID=$(python3 tools/tests/prepare_sim.py) | |
# iOS tests | |
bazelisk test \ | |
--config=ios \ | |
--test_arg=--destination=platform=ios_simulator,id=$SIMULATOR_UDID \ | |
-- \ | |
//tests/ios/... | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: bazel-testlogs | |
path: bazel-testlogs | |
build_virtual_frameworks: | |
# Build the entire tree with this feature enabled. Longer term, we'll likely | |
# consider merging this feature into the default behavior and can re-align | |
# the CI job | |
name: Build and Test ( Virtual Frameworks ) | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
- name: Build and Test | |
run: | | |
# non-iOS tests | |
bazelisk test \ | |
--config=vfs \ | |
-- \ | |
//... \ | |
-//tests/ios/... | |
# iOS tests | |
bazelisk test \ | |
--config=ios \ | |
--config=vfs \ | |
-- \ | |
//tests/ios/... | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: bazel-testlogs | |
path: bazel-testlogs | |
build_arm64_simulator: | |
name: Build arm64 Simulator | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
- name: Build and Test | |
run: | | |
bazelisk build \ | |
--config=vfs \ | |
--features apple.arm64_simulator_use_device_deps \ | |
--ios_multi_cpus=sim_arm64 \ | |
-- \ | |
//... \ | |
-//tests/ios/... | |
# Misc issues: | |
# - Fails on a non fat framework for //tests/ios/unit-test/test-imports-app/ | |
bazelisk build \ | |
--config=ios \ | |
--config=vfs \ | |
--features apple.arm64_simulator_use_device_deps \ | |
--ios_multi_cpus=sim_arm64 \ | |
-- \ | |
//tests/ios/... \ | |
-//tests/ios/unit-test/test-imports-app/... | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: bazel-testlogs | |
path: bazel-testlogs | |
lint: | |
name: Check Starlark and Docs | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
# Note: we need to pass the absolute to the Bazel run | |
- name: buildifier | |
run: | | |
find $PWD -type f \( -name 'WORKSPACE' -o -name '*.bzl' -o -name '*.bazel' \) | xargs bazel run //:buildifier -- -lint=fix | |
git diff --exit-code | |
- name: Check docs | |
run: | | |
bazelisk run \ | |
//docs | |
git diff --exit-code docs | |
xcodeproj_tests: | |
name: .xcodeproj Tests on Xcode 15.2.0 | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --no-bzlmod --use-remote-cache | |
- name: Run tests | |
run: ./tests/xcodeproj-tests.sh --run && ./tests/test-tests.sh | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: bazel-testlogs | |
path: bazel-testlogs | |
lldb_ios_tests_xcode: | |
name: LLDB tests on Xcode 15.2.0 | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
- name: Run tests | |
run: | | |
bazelisk test \ | |
--config=ios_lldb_test \ | |
-- \ | |
tests/ios/lldb/app:objc_app_po_test \ | |
tests/ios/lldb/app:objc_app_variable_test | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: bazel-testlogs | |
path: bazel-testlogs | |
multi_arch_support: | |
# i386 was removed on rules_apple 3.x.x - this test case needs reworking | |
# to exemplify fat binaries on the latest version | |
name: Build iOS App for Multiple Architecture | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Preflight Env | |
run: .github/workflows/preflight_env.sh --use-remote-cache | |
- name: Build App | |
run: | | |
bazelisk build \ | |
--config=ios_multi_arch_test \ | |
-- \ | |
tests/ios/app/App |