From 9db9e5c983b540b41625c802e3f01a683438676c Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Apr 2026 18:38:14 +0000 Subject: [PATCH 1/7] Update CI workflow matrix to match AviaryInsights pattern - Add configure job for dynamic matrix (full on main/tags, reduced on PRs) - Merge build-wasm into build-ubuntu using type matrix dimension - Add concurrency group to cancel in-progress runs - Add pull_request and workflow_dispatch triggers with paths-ignore - Move PACKAGE_NAME to global env - Simplify macOS coverage flags and guard steps with contains-code-coverage - Make build-windows and build-android conditional on full-matrix - Update Android API levels to 28/33/36 and use swift object matrix - Keep Xcode 15.4/macos-14 and Swift 6.1 in Android - Remove per-job env blocks and old ci-skip conditions - Keep Mint-based lint and swift-source-compat-suite jobs https://claude.ai/code/session_01V8SH8T2AKK9KzvKFAF1vaK --- .github/workflows/syndikit.yml | 341 ++++++++++++++------------------- 1 file changed, 149 insertions(+), 192 deletions(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index fb5fe17..d9d0384 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -1,92 +1,123 @@ name: SyndiKit on: push: - branches-ignore: - - '*WIP' - + branches: + - main + - 'v[0-9]+.[0-9]+.[0-9]+' + paths-ignore: + - '**.md' + - 'docs/**' + - 'LICENSE' + - '.github/ISSUE_TEMPLATE/**' + pull_request: + paths-ignore: + - '**.md' + - 'docs/**' + - 'LICENSE' + - '.github/ISSUE_TEMPLATE/**' + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + +env: + PACKAGE_NAME: SyndiKit + jobs: + configure: + name: Configure Matrix + runs-on: ubuntu-latest + outputs: + full-matrix: ${{ steps.matrix.outputs.full-matrix }} + ubuntu-os: ${{ steps.matrix.outputs.ubuntu-os }} + ubuntu-swift: ${{ steps.matrix.outputs.ubuntu-swift }} + ubuntu-type: ${{ steps.matrix.outputs.ubuntu-type }} + steps: + - id: check + name: Determine matrix scope + run: | + FULL=false + REF="${{ github.ref }}" + EVENT="${{ github.event_name }}" + BASE_REF="${{ github.base_ref }}" + if [[ "$REF" == "refs/heads/main" ]]; then + FULL=true + elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then + FULL=true + elif [[ "$EVENT" == "workflow_dispatch" ]]; then + FULL=true + elif [[ "$EVENT" == "pull_request" ]]; then + if [[ "$BASE_REF" == "main" || "$BASE_REF" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then + FULL=true + fi + fi + echo "full=$FULL" >> "$GITHUB_OUTPUT" + - id: matrix + name: Build matrix values + run: | + if [[ "${{ steps.check.outputs.full }}" == "true" ]]; then + echo 'full-matrix=true' >> "$GITHUB_OUTPUT" + echo 'ubuntu-os=["noble","jammy"]' >> "$GITHUB_OUTPUT" + echo 'ubuntu-swift=[{"version":"5.10"},{"version":"6.0"},{"version":"6.1"},{"version":"6.2"},{"version":"6.3"}]' >> "$GITHUB_OUTPUT" + echo 'ubuntu-type=["","wasm","wasm-embedded"]' >> "$GITHUB_OUTPUT" + else + echo 'full-matrix=false' >> "$GITHUB_OUTPUT" + echo 'ubuntu-os=["noble"]' >> "$GITHUB_OUTPUT" + echo 'ubuntu-swift=[{"version":"6.3"}]' >> "$GITHUB_OUTPUT" + echo 'ubuntu-type=[""]' >> "$GITHUB_OUTPUT" + fi + build-ubuntu: name: Build on Ubuntu - env: - PACKAGE_NAME: SyndiKit + needs: configure runs-on: ubuntu-latest - container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-noble', matrix.swift.version) || format('swift:{0}', matrix.swift.version) }} - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} + container: swift:${{ matrix.swift.version }}-${{ matrix.os }} strategy: matrix: - os: [noble, jammy] - swift: - - version: "5.10" - - version: "6.0" - - version: "6.1" - - version: "6.2" - - version: "6.3" + os: ${{ fromJSON(needs.configure.outputs.ubuntu-os) }} + swift: ${{ fromJSON(needs.configure.outputs.ubuntu-swift) }} + type: ${{ fromJSON(needs.configure.outputs.ubuntu-type) }} + exclude: + - swift: {version: "5.10"} + type: wasm + - swift: {version: "5.10"} + type: wasm-embedded + - swift: {version: "6.0"} + type: wasm + - swift: {version: "6.0"} + type: wasm-embedded + - swift: {version: "6.1"} + type: wasm + - swift: {version: "6.1"} + type: wasm-embedded steps: - - uses: actions/checkout@v6 - - uses: brightdigit/swift-build@v1 - id: build + - uses: actions/checkout@v4 + - id: build + uses: brightdigit/swift-build@v1 with: - scheme: ${{ env.PACKAGE_NAME }} + type: ${{ matrix.type }} skip-package-resolved: ${{ contains(matrix.swift.version, '5.') }} - name: Install curl if: steps.build.outputs.contains-code-coverage == 'true' run: | apt-get update -q - apt-get install -y curl - - uses: sersoft-gmbh/swift-coverage-action@v5 - id: coverage-files - with: - fail-on-empty-output: true - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v6 - with: - fail_ci_if_error: true - flags: ubuntu,ubuntu-${{ matrix.os }},swift-${{ matrix.swift.version }}${{ matrix.swift.nightly && '-nightly' || '' }} - verbose: true - token: ${{ secrets.CODECOV_TOKEN }} - files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} - build-wasm: - name: Build on WASM - env: - PACKAGE_NAME: SyndiKit - runs-on: ubuntu-latest - container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }} - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} - strategy: - fail-fast: false - matrix: - os: [noble, jammy] - type: ["wasm", "wasm-embedded"] - swift: - - version: ["6.2", "6.3"] - steps: - - uses: actions/checkout@v6 - - uses: brightdigit/swift-build@v1 - id: build - with: - scheme: ${{ env.PACKAGE_NAME }} - skip-package-resolved: ${{ contains(matrix.swift.version, '5.') }} - type: ${{ matrix.type }} - - uses: sersoft-gmbh/swift-coverage-action@v5 + apt-get install -y curl + - name: Process Coverage if: steps.build.outputs.contains-code-coverage == 'true' - id: coverage-files + uses: sersoft-gmbh/swift-coverage-action@v5 with: fail-on-empty-output: true - name: Upload coverage to Codecov if: steps.build.outputs.contains-code-coverage == 'true' uses: codecov/codecov-action@v6 with: - fail_ci_if_error: true - flags: ubuntu,ubuntu-${{ matrix.os }},swift-${{ matrix.swift.version }}${{ matrix.swift.nightly && '-nightly' || '' }},${{ matrix.type }} - verbose: true token: ${{ secrets.CODECOV_TOKEN }} - files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} + flags: spm,${{ matrix.os }},${{ matrix.swift.version }} + build-macos: name: Build on macOS - env: - PACKAGE_NAME: SyndiKit runs-on: ${{ matrix.runs-on }} - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} strategy: fail-fast: false matrix: @@ -103,17 +134,17 @@ jobs: - runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" - # SPM Build Matrix - Xcode 15.4 + # macOS Build Matrix - Xcode 15.4 - type: macos runs-on: macos-14 xcode: "/Applications/Xcode_15.4.app" - # SPM Build Matrix - Xcode 16.4 + # macOS Build Matrix - Xcode 16.4 - type: macos runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" - # SPM Build Matrix - Xcode 26.4 + # macOS Build Matrix - Xcode 26.4 - type: macos runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" @@ -129,15 +160,15 @@ jobs: - type: ios runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" - deviceName: "iPhone 16 Pro" - osVersion: "18.6" - + deviceName: "iPhone 16" + osVersion: "18.5" + # iOS Build Matrix - Xcode 26.4 - type: ios runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" - deviceName: "iPhone 17 Pro" - osVersion: "26.4" + deviceName: "iPhone 17" + osVersion: "26.4" download-platform: true # watchOS Build Matrix - Xcode 15.4 @@ -159,22 +190,22 @@ jobs: runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" deviceName: "Apple Watch Ultra 3 (49mm)" - osVersion: "26.4" + osVersion: "26.4" download-platform: true # tvOS Build Matrix - Xcode 16.4 - type: tvos runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" - deviceName: "Apple TV" + deviceName: "Apple TV 4K (3rd generation)" osVersion: "18.5" # tvOS Build Matrix - Xcode 26.4 - type: tvos runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" - deviceName: "Apple TV" - osVersion: "26.4" + deviceName: "Apple TV 4K (3rd generation)" + osVersion: "26.4" download-platform: true # visionOS Build Matrix - Xcode 16.4 @@ -182,24 +213,25 @@ jobs: runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" deviceName: "Apple Vision Pro" - osVersion: "2.4" + osVersion: "2.5" # visionOS Build Matrix - Xcode 26.4 - type: visionos runs-on: macos-26 xcode: "/Applications/Xcode_26.4.app" deviceName: "Apple Vision Pro" - osVersion: "26.4" + osVersion: "26.4" download-platform: true steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v4 - name: Disable Xcode macro fingerprint validation if: ${{ contains(matrix.xcode, 'Xcode_15.4') && matrix.type != '' }} run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES - - name: Build and Test + - id: build + name: Build and Test uses: brightdigit/swift-build@v1 with: scheme: ${{ env.PACKAGE_NAME }} @@ -207,128 +239,64 @@ jobs: xcode: ${{ matrix.xcode }} deviceName: ${{ matrix.deviceName }} osVersion: ${{ matrix.osVersion }} + download-platform: ${{ matrix.download-platform }} build-only: ${{ contains(matrix.xcode, 'Xcode_15.4') && matrix.type != '' }} skip-package-resolved: ${{ contains(matrix.xcode, 'Xcode_15.4') }} - # Common Coverage Steps - name: Process Coverage + if: ${{ steps.build.outputs.contains-code-coverage == 'true' }} uses: sersoft-gmbh/swift-coverage-action@v5 - - - name: Set coverage flags - id: coverage-flags - run: | - # Select Xcode version - sudo xcode-select -s "${{ matrix.xcode }}" - - # Extract Xcode version from path like /Applications/Xcode_16.4.app - XCODE_VERSION=$(echo "${{ matrix.xcode }}" | sed -n 's/.*Xcode_\([0-9.]*\).*/\1/p') - - # Extract Swift version - SWIFT_VERSION=$(xcrun swift --version | head -n 1 | sed -n 's/.*Swift version \([0-9.]*\).*/\1/p') - - # Extract macOS version from runs-on - MACOS_VERSION=$(echo "${{ matrix.runs-on }}" | sed 's/macos-//') - - # Determine platform - PLATFORM="${{ matrix.type || 'macos' }}" - - # Build flags - if [ -n "${{ matrix.osVersion }}" ]; then - # Platform build (iOS, tvOS, etc.) - FLAGS="${PLATFORM},${PLATFORM}-${{ matrix.osVersion }},swift-${SWIFT_VERSION},xcode-${XCODE_VERSION}" - else - # SPM/macOS build - FLAGS="macos,macos-${MACOS_VERSION},swift-${SWIFT_VERSION},xcode-${XCODE_VERSION}" - fi - - echo "flags=${FLAGS}" >> $GITHUB_OUTPUT + with: + fail-on-empty-output: true + search-paths: | + ./.build + /Users/runner/work/_temp/DerivedData - name: Upload Coverage + if: ${{ steps.build.outputs.contains-code-coverage == 'true' }} uses: codecov/codecov-action@v6 with: token: ${{ secrets.CODECOV_TOKEN }} - flags: ${{ steps.coverage-flags.outputs.flags }} + flags: ${{ matrix.type && format('{0}{1}', matrix.type, matrix.osVersion) || 'spm' }} build-windows: name: Build on Windows - env: - PACKAGE_NAME: SyndiKit + needs: [configure] + if: needs.configure.outputs.full-matrix == 'true' runs-on: ${{ matrix.runs-on }} - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} strategy: fail-fast: false matrix: - include: - - runs-on: windows-2022 - swift: - version: swift-6.1-release - build: 6.1-RELEASE - - - runs-on: windows-2022 - swift: - version: swift-6.2-release - build: 6.2-RELEASE - - - runs-on: windows-2022 - swift: - version: swift-6.3-release - build: 6.3-RELEASE - - - runs-on: windows-2025 - swift: - version: swift-6.1-release - build: 6.1-RELEASE - - - runs-on: windows-2025 - swift: - version: swift-6.2-release - build: 6.2-RELEASE - - - runs-on: windows-2025 - swift: - version: swift-6.3-release - build: 6.3-RELEASE + runs-on: [windows-2022, windows-2025] + swift: + - version: swift-6.1-release + build: 6.1-RELEASE + - version: swift-6.2-release + build: 6.2-RELEASE + - version: swift-6.3-release + build: 6.3-RELEASE steps: - - uses: actions/checkout@v6 - - - name: Build and Test - uses: brightdigit/swift-build@v1 + - uses: actions/checkout@v4 + - uses: brightdigit/swift-build@v1 with: - scheme: ${{ env.PACKAGE_NAME }} windows-swift-version: ${{ matrix.swift.version }} windows-swift-build: ${{ matrix.swift.build }} - - name: Set coverage flags - id: coverage-flags - shell: bash - run: | - # Extract version from swift-6.1-release format - VERSION=$(echo "${{ matrix.swift.version }}" | sed 's/swift-\([0-9.]*\)-.*/\1/') - OS_VERSION=$(echo "${{ matrix.runs-on }}" | sed 's/windows-//') - echo "flags=windows,windows-${OS_VERSION},swift-${VERSION}" >> $GITHUB_OUTPUT - - - name: Upload Coverage - uses: codecov/codecov-action@v6 - with: - token: ${{ secrets.CODECOV_TOKEN }} - flags: ${{ steps.coverage-flags.outputs.flags }} - build-android: name: Build on Android - env: - PACKAGE_NAME: SyndiKit + needs: [configure] + if: needs.configure.outputs.full-matrix == 'true' runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} strategy: fail-fast: false matrix: - swift-version: ["6.1", "6.2", "6.3"] - # Testing API 21+ (64-bit architectures) to avoid zlib linking issues on 32-bit ARM - # See: https://github.com/android/ndk/issues/1391 - api-level: [28, 33, 34] - + swift: + - version: "6.1" + - version: "6.2" + - version: "6.3" + android-api-level: [28, 33, 36] steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v4 - name: Free Disk Space run: | @@ -339,46 +307,36 @@ jobs: sudo apt-get clean sudo docker image prune --all --force - - name: Build and Test - uses: brightdigit/swift-build@v1 - id: build + - uses: brightdigit/swift-build@v1 with: - scheme: ${{ env.PACKAGE_NAME }} type: android - android-swift-version: ${{ matrix.swift-version }} - android-api-level: ${{ matrix.api-level }} + android-swift-version: ${{ matrix.swift.version }} + android-api-level: ${{ matrix.android-api-level }} android-run-tests: true android-copy-files: Data/ - - name: Upload Coverage - uses: codecov/codecov-action@v6 - if: steps.build.outputs.contains-code-coverage == 'true' - with: - token: ${{ secrets.CODECOV_TOKEN }} - flags: android,android-api-${{ matrix.api-level }},swift-${{ matrix.swift-version }} - lint: name: Linting - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} + if: ${{ always() && !cancelled() && !failure() }} runs-on: ubuntu-latest - needs: [build-ubuntu, build-wasm, build-macos, build-windows, build-android] + needs: [build-ubuntu, build-macos, build-windows, build-android] env: MINT_PATH: .mint/lib MINT_LINK_PATH: .mint/bin steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v4 - name: Cache mint id: cache-mint - uses: actions/cache@v4 + uses: actions/cache@v4 env: cache-name: cache with: path: | .mint - Mint + Mint key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} restore-keys: | - ${{ runner.os }}-mint- + ${{ runner.os }}-mint- - name: Install mint if: steps.cache-mint.outputs.cache-hit == '' run: | @@ -391,7 +349,6 @@ jobs: swift-source-compat-suite: name: Test Swift 6.x For Source Compatibility Suite runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} strategy: matrix: container: @@ -401,6 +358,6 @@ jobs: - swift:6.3 container: ${{ matrix.container }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v4 - name: Run Swift 6.x tests run: swift build --disable-sandbox --verbose --configuration release -Xswiftc -swift-version -Xswiftc 6 From 5954b11a68e0c73fcb573c3028c78331944fe92e Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Apr 2026 18:45:54 +0000 Subject: [PATCH 2/7] Keep checkout@v6 and run full matrix on current branch https://claude.ai/code/session_01V8SH8T2AKK9KzvKFAF1vaK --- .github/workflows/syndikit.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index d9d0384..917d720 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -43,6 +43,8 @@ jobs: BASE_REF="${{ github.base_ref }}" if [[ "$REF" == "refs/heads/main" ]]; then FULL=true + elif [[ "$REF" == "refs/heads/claude/update-workflow-matrix-bnyqx" ]]; then + FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true elif [[ "$EVENT" == "workflow_dispatch" ]]; then @@ -92,7 +94,7 @@ jobs: - swift: {version: "6.1"} type: wasm-embedded steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - id: build uses: brightdigit/swift-build@v1 with: @@ -224,7 +226,7 @@ jobs: download-platform: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Disable Xcode macro fingerprint validation if: ${{ contains(matrix.xcode, 'Xcode_15.4') && matrix.type != '' }} @@ -276,7 +278,7 @@ jobs: - version: swift-6.3-release build: 6.3-RELEASE steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: brightdigit/swift-build@v1 with: windows-swift-version: ${{ matrix.swift.version }} @@ -296,7 +298,7 @@ jobs: - version: "6.3" android-api-level: [28, 33, 36] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Free Disk Space run: | @@ -324,7 +326,7 @@ jobs: MINT_PATH: .mint/lib MINT_LINK_PATH: .mint/bin steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Cache mint id: cache-mint uses: actions/cache@v4 @@ -358,6 +360,6 @@ jobs: - swift:6.3 container: ${{ matrix.container }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Run Swift 6.x tests run: swift build --disable-sandbox --verbose --configuration release -Xswiftc -swift-version -Xswiftc 6 From be2107d39427f8c696aa7ae5ae30676a46db0f7f Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Apr 2026 18:53:42 +0000 Subject: [PATCH 3/7] Use gh pr view to detect full-matrix scope from PR base branch For push events on feature branches, look up the PR's base branch via gh CLI rather than hardcoding the branch name. Full matrix runs when the PR targets main or a version tag branch. https://claude.ai/code/session_01V8SH8T2AKK9KzvKFAF1vaK --- .github/workflows/syndikit.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index 917d720..dc7701c 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -36,6 +36,8 @@ jobs: steps: - id: check name: Determine matrix scope + env: + GH_TOKEN: ${{ github.token }} run: | FULL=false REF="${{ github.ref }}" @@ -43,8 +45,6 @@ jobs: BASE_REF="${{ github.base_ref }}" if [[ "$REF" == "refs/heads/main" ]]; then FULL=true - elif [[ "$REF" == "refs/heads/claude/update-workflow-matrix-bnyqx" ]]; then - FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true elif [[ "$EVENT" == "workflow_dispatch" ]]; then @@ -53,6 +53,11 @@ jobs: if [[ "$BASE_REF" == "main" || "$BASE_REF" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true fi + elif [[ "$EVENT" == "push" ]]; then + PR_BASE=$(gh pr view "${{ github.ref_name }}" --repo "${{ github.repository }}" --json baseRefName --jq '.baseRefName' 2>/dev/null || echo "") + if [[ "$PR_BASE" == "main" || "$PR_BASE" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then + FULL=true + fi fi echo "full=$FULL" >> "$GITHUB_OUTPUT" - id: matrix From 5ecb7a98d52b70bba494fbf3b1d22370485f77cd Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Sun, 19 Apr 2026 14:59:18 -0400 Subject: [PATCH 4/7] Revert "Use gh pr view to detect full-matrix scope from PR base branch" This reverts commit be2107d39427f8c696aa7ae5ae30676a46db0f7f. --- .github/workflows/syndikit.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index dc7701c..917d720 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -36,8 +36,6 @@ jobs: steps: - id: check name: Determine matrix scope - env: - GH_TOKEN: ${{ github.token }} run: | FULL=false REF="${{ github.ref }}" @@ -45,6 +43,8 @@ jobs: BASE_REF="${{ github.base_ref }}" if [[ "$REF" == "refs/heads/main" ]]; then FULL=true + elif [[ "$REF" == "refs/heads/claude/update-workflow-matrix-bnyqx" ]]; then + FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true elif [[ "$EVENT" == "workflow_dispatch" ]]; then @@ -53,11 +53,6 @@ jobs: if [[ "$BASE_REF" == "main" || "$BASE_REF" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true fi - elif [[ "$EVENT" == "push" ]]; then - PR_BASE=$(gh pr view "${{ github.ref_name }}" --repo "${{ github.repository }}" --json baseRefName --jq '.baseRefName' 2>/dev/null || echo "") - if [[ "$PR_BASE" == "main" || "$PR_BASE" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then - FULL=true - fi fi echo "full=$FULL" >> "$GITHUB_OUTPUT" - id: matrix From 750da39b950800ebc55f01d3a39c833bcc724147 Mon Sep 17 00:00:00 2001 From: leogdion Date: Sun, 19 Apr 2026 15:00:47 -0400 Subject: [PATCH 5/7] Update workflow condition for pull request merges --- .github/workflows/syndikit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index 917d720..dc164a9 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -43,7 +43,7 @@ jobs: BASE_REF="${{ github.base_ref }}" if [[ "$REF" == "refs/heads/main" ]]; then FULL=true - elif [[ "$REF" == "refs/heads/claude/update-workflow-matrix-bnyqx" ]]; then + elif [[ "$REF" == "refs/pull/124/merge" ]]; then FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true From 9b27fd48a31ba27af22715dd83a9938838f55e31 Mon Sep 17 00:00:00 2001 From: leogdion Date: Sun, 19 Apr 2026 15:43:50 -0400 Subject: [PATCH 6/7] Add linker settings for SyndiKit target (#125) --- .github/workflows/syndikit.yml | 2 ++ Package@swift-6.0.swift | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index dc164a9..e324fa3 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -45,6 +45,8 @@ jobs: FULL=true elif [[ "$REF" == "refs/pull/124/merge" ]]; then FULL=true + elif [[ "$REF" == "refs/pull/125/merge" ]]; then + FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true elif [[ "$EVENT" == "workflow_dispatch" ]]; then diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift index 12ebfd1..d037d3f 100644 --- a/Package@swift-6.0.swift +++ b/Package@swift-6.0.swift @@ -39,7 +39,8 @@ let package = Package( .target( name: "SyndiKit", dependencies: ["XMLCoder"], - swiftSettings: swift6Features + swiftSettings: swift6Features, + linkerSettings: [.linkedLibrary("z", .when(platforms: [.android]))] ), .target( From e14e4efe6873eb4ca92092cf24a9451d0599a03b Mon Sep 17 00:00:00 2001 From: leogdion Date: Sun, 19 Apr 2026 15:44:29 -0400 Subject: [PATCH 7/7] Refactor FULL variable conditions in syndikit.yml [skip ci] Remove specific pull request checks for FULL variable. --- .github/workflows/syndikit.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/syndikit.yml b/.github/workflows/syndikit.yml index e324fa3..27e8e4b 100644 --- a/.github/workflows/syndikit.yml +++ b/.github/workflows/syndikit.yml @@ -42,10 +42,6 @@ jobs: EVENT="${{ github.event_name }}" BASE_REF="${{ github.base_ref }}" if [[ "$REF" == "refs/heads/main" ]]; then - FULL=true - elif [[ "$REF" == "refs/pull/124/merge" ]]; then - FULL=true - elif [[ "$REF" == "refs/pull/125/merge" ]]; then FULL=true elif [[ "$REF" =~ ^refs/heads/v?[0-9]+\.[0-9]+\.[0-9]+ ]]; then FULL=true