Update swift-docc-plugin to 1.4.6 to fix Windows CI #266
Workflow file for this run
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: SyntaxKit | |
| on: | |
| push: | |
| branches-ignore: | |
| - '*WIP' | |
| paths-ignore: | |
| - '**.md' | |
| - 'Docs/**' | |
| - 'LICENSE' | |
| - '.github/ISSUE_TEMPLATE/**' | |
| pull_request: | |
| branches: | |
| - main | |
| - 'v[0-9]*.[0-9]*.[0-9]*' | |
| paths-ignore: | |
| - '**.md' | |
| - 'Docs/**' | |
| - 'LICENSE' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} | |
| cancel-in-progress: true | |
| env: | |
| PACKAGE_NAME: SyntaxKit | |
| jobs: | |
| configure: | |
| name: Configure Build Matrix | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event_name == 'pull_request' || !contains(github.event.head_commit.message, 'ci skip') }} | |
| outputs: | |
| full-matrix: ${{ steps.set-matrix.outputs.full-matrix }} | |
| ubuntu-os: ${{ steps.set-matrix.outputs.ubuntu-os }} | |
| ubuntu-swift: ${{ steps.set-matrix.outputs.ubuntu-swift }} | |
| ubuntu-type: ${{ steps.set-matrix.outputs.ubuntu-type }} | |
| steps: | |
| - name: Determine build matrix | |
| id: set-matrix | |
| run: | | |
| if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.event_name }}" == "pull_request" ]]; then | |
| echo "full-matrix=true" >> "$GITHUB_OUTPUT" | |
| echo 'ubuntu-os=["noble","jammy"]' >> "$GITHUB_OUTPUT" | |
| echo 'ubuntu-swift=[{"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 | |
| needs: [configure] | |
| runs-on: ubuntu-latest | |
| container: ${{ (matrix.type == 'wasm' || matrix.type == 'wasm-embedded') && 'swift:6.3-noble' || matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }} | |
| strategy: | |
| matrix: | |
| os: ${{ fromJSON(needs.configure.outputs.ubuntu-os) }} | |
| swift: ${{ fromJSON(needs.configure.outputs.ubuntu-swift) }} | |
| type: ${{ fromJSON(needs.configure.outputs.ubuntu-type) }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: brightdigit/swift-build@v1.5.2 | |
| id: build | |
| with: | |
| type: ${{ matrix.type }} | |
| wasmtime-version: 41.0.3 | |
| - 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 | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| 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: swift-${{ matrix.swift.version }},ubuntu | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} | |
| build-windows: | |
| name: Build on Windows | |
| needs: [configure] | |
| if: needs.configure.outputs.full-matrix == 'true' | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: [windows-2022, windows-2025] | |
| include: | |
| - swift-version: swift-6.3-release | |
| swift-build: 6.3-RELEASE | |
| - swift-version: swift-6.2-release | |
| swift-build: 6.2-RELEASE | |
| - swift-version: swift-6.1-release | |
| swift-build: 6.1-RELEASE | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: brightdigit/swift-build@v1.5.2 | |
| id: build | |
| with: | |
| windows-swift-version: ${{ matrix.swift-version }} | |
| windows-swift-build: ${{ matrix.swift-build }} | |
| - 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: swift-${{ matrix.swift-version }},windows | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| os: windows | |
| swift_project: SyntaxKit | |
| build-macos: | |
| name: Build on macOS | |
| needs: [configure] | |
| env: | |
| PACKAGE_NAME: SyntaxKit | |
| runs-on: ${{ matrix.runs-on }} | |
| if: ${{ !cancelled() && needs.configure.result == 'success' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # SPM Build | |
| - runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Build and Test | |
| id: build | |
| uses: brightdigit/swift-build@v1.5.2 | |
| with: | |
| scheme: ${{ env.PACKAGE_NAME }}-Package | |
| type: ${{ matrix.type }} | |
| xcode: ${{ matrix.xcode }} | |
| deviceName: ${{ matrix.deviceName }} | |
| osVersion: ${{ matrix.osVersion }} | |
| download-platform: ${{ matrix.download-platform }} | |
| # Common Coverage Steps | |
| - name: Process Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: sersoft-gmbh/swift-coverage-action@v5 | |
| - name: Upload Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: codecov/codecov-action@v6 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: ${{ matrix.type && format('{0}{1}', matrix.type, matrix.osVersion) || 'spm' }} | |
| build-macos-full: | |
| name: Build on macOS (Full) | |
| needs: [configure] | |
| if: needs.configure.outputs.full-matrix == 'true' | |
| env: | |
| PACKAGE_NAME: SyntaxKit | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # SPM Build (older Xcode) | |
| - runs-on: macos-15 | |
| xcode: "/Applications/Xcode_16.4.app" | |
| # macOS Build (older Xcode) | |
| - type: macos | |
| runs-on: macos-15 | |
| xcode: "/Applications/Xcode_16.4.app" | |
| # macOS Build | |
| - type: macos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| # iOS Build Matrix | |
| - type: ios | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| deviceName: "iPhone 17 Pro" | |
| osVersion: "26.4" | |
| download-platform: true | |
| # watchOS Build Matrix | |
| - type: watchos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| deviceName: "Apple Watch Ultra 3 (49mm)" | |
| osVersion: "26.4" | |
| download-platform: true | |
| # tvOS Build Matrix | |
| - type: tvos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| deviceName: "Apple TV" | |
| osVersion: "26.4" | |
| download-platform: true | |
| # visionOS Build Matrix | |
| - type: visionos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.4.app" | |
| deviceName: "Apple Vision Pro" | |
| osVersion: "26.4" | |
| download-platform: true | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Build and Test | |
| id: build | |
| uses: brightdigit/swift-build@v1.5.2 | |
| with: | |
| scheme: ${{ env.PACKAGE_NAME }}-Package | |
| type: ${{ matrix.type }} | |
| xcode: ${{ matrix.xcode }} | |
| deviceName: ${{ matrix.deviceName }} | |
| osVersion: ${{ matrix.osVersion }} | |
| download-platform: ${{ matrix.download-platform }} | |
| # Common Coverage Steps | |
| - name: Process Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: sersoft-gmbh/swift-coverage-action@v5 | |
| - name: Upload Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: codecov/codecov-action@v6 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: ${{ matrix.type && format('{0}{1}', matrix.type, matrix.osVersion) || 'spm' }} | |
| build-android: | |
| name: Build for Android | |
| needs: [configure] | |
| if: needs.configure.outputs.full-matrix == 'true' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| swift: | |
| - version: "6.2" | |
| - version: "6.3" | |
| android-api-level: [33, 34] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Free disk space | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| with: | |
| tool-cache: false | |
| android: false | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - uses: brightdigit/swift-build@v1.5.2 | |
| id: build | |
| with: | |
| type: android | |
| android-swift-version: ${{ matrix.swift.version }} | |
| android-api-level: ${{ matrix.android-api-level }} | |
| android-run-tests: true | |
| android-copy-files: Sources/SyntaxKit/Documentation.docc | |
| - 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: android-api${{ matrix.android-api-level }}-swift${{ matrix.swift.version }} | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| lint: | |
| name: Linting | |
| if: ${{ !cancelled() && !failure() && !contains(github.event.head_commit.message, 'ci skip') }} | |
| runs-on: ubuntu-latest | |
| needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android] | |
| env: | |
| MINT_PATH: .mint/lib | |
| MINT_LINK_PATH: .mint/bin | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Cache mint | |
| id: cache-mint | |
| uses: actions/cache@v5 | |
| env: | |
| cache-name: cache | |
| with: | |
| path: | | |
| .mint | |
| Mint | |
| key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mint- | |
| - name: Install mint | |
| if: steps.cache-mint.outputs.cache-hit == '' | |
| run: | | |
| git clone https://github.com/yonaskolb/Mint.git | |
| cd Mint | |
| swift run mint install yonaskolb/mint | |
| - name: Lint | |
| run: ./Scripts/lint.sh | |
| docs: | |
| name: Documentation Validation | |
| if: ${{ !cancelled() && !failure() && !contains(github.event.head_commit.message, 'ci skip') }} | |
| needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Validate Documentation | |
| run: ./Scripts/validate-docs.sh |