fix(release): sync OpenObservation macro sources (#1106) #2810
This file contains hidden or 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: iOS | |
| on: | |
| workflow_call: | |
| inputs: | |
| ref: | |
| required: true | |
| type: string | |
| outputs: | |
| verified-sha: | |
| value: ${{ jobs.ios_test.outputs.sha }} | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'Sources/**' | |
| - 'Tests/**' | |
| - 'Package.swift' | |
| - 'Scripts/CI/**' | |
| - 'Scripts/Tuist/**' | |
| - 'mise*.toml' | |
| - '.github/workflows/ios.yml' | |
| pull_request: | |
| paths: | |
| - 'Sources/**' | |
| - 'Tests/**' | |
| - 'Package.swift' | |
| - 'Scripts/CI/**' | |
| - 'Scripts/Tuist/**' | |
| - 'mise*.toml' | |
| - '.github/workflows/ios.yml' | |
| jobs: | |
| ios_test: | |
| name: Execute tests on iOS | |
| outputs: | |
| sha: ${{ steps.checkout.outputs.commit }} | |
| permissions: | |
| contents: read | |
| id-token: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| xcode-version: ["26.6"] | |
| release: [2024] | |
| ios-version: ["18.5"] | |
| include: | |
| - ios-version: "18.5" | |
| ios-simulator-name: "iPhone 16 Pro" | |
| runs-on: | |
| - xcode-26.6 | |
| - ios-simulator-18.5 | |
| env: | |
| OPENSWIFTUI_WERROR: 0 # Disable it to avoid enable OAG's werror and hit conflicts | |
| OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 1 | |
| OPENSWIFTUI_COMPATIBILITY_TEST: 0 | |
| OPENSWIFTUI_SWIFT_LOG: 0 | |
| OPENSWIFTUI_SWIFT_CRYPTO: 0 | |
| OPENSWIFTUI_TARGET_RELEASE: ${{ matrix.release }} | |
| OPENSWIFTUI_SUPPORT_MULTI_PRODUCTS: 0 | |
| OPENSWIFTUI_USE_LOCAL_DEPS: 1 | |
| OPENSWIFTUI_LINK_TESTING: 1 | |
| # Match Xcode's test launcher so OSLogStore can read current-process debug messages. | |
| OS_ACTIVITY_DT_MODE: "YES" | |
| GH_TOKEN: ${{ github.token }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| id: checkout | |
| with: | |
| ref: ${{ inputs.ref || github.sha }} | |
| - name: Setup Xcode | |
| uses: OpenSwiftUIProject/setup-xcode@v2 | |
| with: | |
| xcode-version: ${{ matrix.xcode-version }} | |
| - name: Set up mise | |
| uses: jdx/mise-action@v2 | |
| with: | |
| install: false | |
| cache: false | |
| - name: Set up Tuist | |
| run: | | |
| source Scripts/Tuist/common.sh | |
| tuist_ci_setup | |
| shell: bash | |
| - name: Set up build environment | |
| run: Scripts/CI/darwin_setup_build.sh | |
| shell: bash | |
| - name: Install xcbeautify | |
| run: brew install xcbeautify | |
| - name: Prepare isolated DerivedData | |
| shell: bash | |
| run: | | |
| derived_data_path="${RUNNER_TEMP:-/tmp}/ios-derived-data-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT:-0}-${{ matrix.ios-version }}-${{ matrix.release }}" | |
| build_result_bundle_path="${RUNNER_TEMP:-/tmp}/ios-build-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT:-0}-${{ matrix.ios-version }}-${{ matrix.release }}.xcresult" | |
| test_result_bundle_path="${RUNNER_TEMP:-/tmp}/ios-test-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT:-0}-${{ matrix.ios-version }}-${{ matrix.release }}.xcresult" | |
| rm -rf "$derived_data_path" | |
| mkdir -p "$derived_data_path" | |
| { | |
| echo "DERIVED_DATA_PATH=$derived_data_path" | |
| echo "BUILD_RESULT_BUNDLE_PATH=$build_result_bundle_path" | |
| echo "TEST_RESULT_BUNDLE_PATH=$test_result_bundle_path" | |
| } >> "$GITHUB_ENV" | |
| - name: Build test target in debug mode | |
| run: | | |
| set -o pipefail | |
| source Scripts/Tuist/common.sh | |
| # Xcode 26.6 can otherwise link the host macro object into the iOS Simulator test bundle. | |
| NSUnbufferedIO=YES tuist_xcodebuild "$BUILD_RESULT_BUNDLE_PATH" build -IDEPackageEnablePrebuilts=NO \ | |
| -scheme OpenSwiftUI \ | |
| -configuration Debug \ | |
| -destination "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }}" \ | |
| -derivedDataPath "$DERIVED_DATA_PATH" \ | |
| -skipMacroValidation \ | |
| -skipPackagePluginValidation \ | |
| 2>&1 | xcbeautify --renderer github-actions --preserve-unbeautified | |
| - name: Run test target in debug mode | |
| run: | | |
| set -o pipefail | |
| source Scripts/Tuist/common.sh | |
| # Match the package prebuilt setting used by the build step. | |
| NSUnbufferedIO=YES tuist_xcodebuild "$TEST_RESULT_BUNDLE_PATH" test -IDEPackageEnablePrebuilts=NO \ | |
| -scheme OpenSwiftUI \ | |
| -configuration Debug \ | |
| -destination "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }}" \ | |
| -derivedDataPath "$DERIVED_DATA_PATH" \ | |
| -skipMacroValidation \ | |
| -skipPackagePluginValidation \ | |
| 2>&1 | xcbeautify --renderer github-actions --preserve-unbeautified | |
| - name: Clean up isolated DerivedData | |
| if: always() | |
| shell: bash | |
| run: | | |
| if [[ -n "${DERIVED_DATA_PATH:-}" ]]; then | |
| rm -rf "$DERIVED_DATA_PATH" | |
| fi | |
| if [[ -n "${BUILD_RESULT_BUNDLE_PATH:-}" ]]; then | |
| rm -rf "$BUILD_RESULT_BUNDLE_PATH" | |
| fi | |
| if [[ -n "${TEST_RESULT_BUNDLE_PATH:-}" ]]; then | |
| rm -rf "$TEST_RESULT_BUNDLE_PATH" | |
| fi |