Skip to content

End-to-end support of SDK clang and swift modules #3192

End-to-end support of SDK clang and swift modules

End-to-end support of SDK clang and swift modules #3192

Workflow file for this run

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
# NOTE: because matrix cannot easily be shared across jobs, it should be copied to each job
# when adding a new job / changing the matrix, make sure to update all jobs
jobs:
integration_tests:
name: Build and test (Bazel ${{ matrix.bazel_version }} / Xcode ${{ matrix.xcode_version }} / Virtual Frameworks ${{ matrix.virtual_frameworks }})
runs-on: macos-14
strategy:
fail-fast: false
matrix:
bazel_version: [6.5.0, 7.1.0]
xcode_version: [15.2]
virtual_frameworks: [true, false]
env:
XCODE_VERSION: ${{ matrix.xcode_version }}
USE_BAZEL_VERSION: ${{ matrix.bazel_version }}
steps:
- uses: actions/checkout@v4
- name: Preflight Env
run: .github/workflows/preflight_env.sh
- if: matrix.virtual_frameworks
name: Add vfs config
run: |
echo "build --config=vfs" >> user.bazelrc
- 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@v4
if: failure()
with:
name: bazel-testlogs
path: bazel-testlogs
build_arm64_simulator:
name: arm64 Simulator (Bazel ${{ matrix.bazel_version }} / Xcode ${{ matrix.xcode_version }})
runs-on: macos-14
strategy:
fail-fast: false
matrix:
bazel_version: [6.5.0, 7.1.0]
xcode_version: [15.2]
env:
XCODE_VERSION: ${{ matrix.xcode_version }}
USE_BAZEL_VERSION: ${{ matrix.bazel_version }}
steps:
- uses: actions/checkout@v4
- name: Preflight Env
run: .github/workflows/preflight_env.sh
- 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@v4
if: failure()
with:
name: bazel-testlogs
path: bazel-testlogs
buildifier-and-docs:
name: Buildifier and Documentation (Bazel ${{ matrix.bazel_version }} / Xcode ${{ matrix.xcode_version }})
runs-on: macos-14
strategy:
fail-fast: false
matrix:
bazel_version: [7.1.0] # Only run on latest Bazel version as stardoc changes between versions and produces different results
xcode_version: [15.2]
env:
XCODE_VERSION: ${{ matrix.xcode_version }}
USE_BAZEL_VERSION: ${{ matrix.bazel_version }}
steps:
- uses: actions/checkout@v4
- name: Preflight Env
run: .github/workflows/preflight_env.sh
# 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
- uses: actions/upload-artifact@v4
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: iOS App Multiple Architectures (Bazel ${{ matrix.bazel_version }} / Xcode ${{ matrix.xcode_version }})
runs-on: macos-14
strategy:
fail-fast: false
matrix:
bazel_version: [6.5.0, 7.1.0]
xcode_version: [15.2]
env:
XCODE_VERSION: ${{ matrix.xcode_version }}
USE_BAZEL_VERSION: ${{ matrix.bazel_version }}
steps:
- uses: actions/checkout@v4
- name: Preflight Env
run: .github/workflows/preflight_env.sh
- name: Build App
run: |
bazelisk build \
--config=ios_multi_arch_test \
-- \
tests/ios/app/App