Remove outdated comment #674
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: Check | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
lint: | |
runs-on: macos-15 | |
# From actions/cache documentation linked to below | |
env: | |
MINT_PATH: .mint/lib | |
MINT_LINK_PATH: .mint/bin | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This step can be removed once the runners’ default version of Xcode is 16 or above | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: 16 | |
# We use caching for Mint because at the time of writing SwiftLint took about 5 minutes to build in CI, which is unacceptably slow. | |
# https://github.com/actions/cache/blob/40c3b67b2955d93d83b27ed164edd0756bc24049/examples.md#swift---mint | |
- uses: actions/cache@v4 | |
with: | |
path: .mint | |
key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} | |
restore-keys: | | |
${{ runner.os }}-mint- | |
- run: npm ci | |
- run: brew install mint | |
- run: mint bootstrap | |
- run: swift run BuildTool lint | |
spec-coverage: | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This step can be removed once the runners’ default version of Xcode is 16 or above | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: 16 | |
- name: Spec coverage | |
run: swift run BuildTool spec-coverage | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
generate-matrices: | |
runs-on: macos-15 | |
outputs: | |
matrix: ${{ steps.generation-step.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This step can be removed once the runners’ default version of Xcode is 16 or above | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: 16 | |
- id: generation-step | |
run: swift run BuildTool generate-matrices >> $GITHUB_OUTPUT | |
build-and-test-spm: | |
name: SPM (Xcode ${{ matrix.tooling.xcodeVersion }}) | |
runs-on: macos-15 | |
needs: generate-matrices | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.generate-matrices.outputs.matrix).withoutPlatform }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.tooling.xcodeVersion }} | |
# https://forums.swift.org/t/warnings-as-errors-for-libraries-frameworks/58393/2 | |
- run: swift build -Xswiftc -warnings-as-errors | |
- run: swift test -Xswiftc -warnings-as-errors | |
build-release-configuration-spm: | |
name: SPM, `release` configuration (Xcode ${{ matrix.tooling.xcodeVersion }}) | |
runs-on: macos-15 | |
needs: generate-matrices | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.generate-matrices.outputs.matrix).withoutPlatform }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.tooling.xcodeVersion }} | |
# https://forums.swift.org/t/warnings-as-errors-for-libraries-frameworks/58393/2 | |
- run: swift build -Xswiftc -warnings-as-errors --configuration release | |
build-and-test-xcode: | |
name: Xcode, ${{matrix.platform}} (Xcode ${{ matrix.tooling.xcodeVersion }}) | |
runs-on: macos-15 | |
needs: generate-matrices | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.generate-matrices.outputs.matrix).withPlatform }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.tooling.xcodeVersion }} | |
# We run these as two separate steps so that we can easily see the execution time of each step. | |
- name: Build for testing | |
run: swift run BuildTool build-library-for-testing --platform ${{ matrix.platform }} | |
- name: Run tests | |
run: swift run BuildTool test-library --platform ${{ matrix.platform }} | |
build-release-configuration-xcode: | |
name: Xcode, `release` configuration, ${{matrix.platform}} (Xcode ${{ matrix.tooling.xcodeVersion }}) | |
runs-on: macos-15 | |
needs: generate-matrices | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.generate-matrices.outputs.matrix).withPlatform }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.tooling.xcodeVersion }} | |
- name: Build library | |
run: swift run BuildTool build-library --platform ${{ matrix.platform }} --configuration release | |
check-example-app: | |
name: Example app, ${{matrix.platform}} (Xcode ${{ matrix.tooling.xcodeVersion }}) | |
runs-on: macos-15 | |
needs: generate-matrices | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJson(needs.generate-matrices.outputs.matrix).withPlatform }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.tooling.xcodeVersion }} | |
- name: Build example app | |
run: swift run BuildTool build-example-app --platform ${{ matrix.platform }} | |
check-documentation: | |
runs-on: macos-15 | |
permissions: | |
deployments: write | |
id-token: write | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This step can be removed once the runners’ default version of Xcode is 16 or above | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: 16 | |
# Dry run upload-action to get base-path url | |
- name: Dry-Run Upload (to get url) | |
id: preupload | |
uses: ably/sdk-upload-action@v2 | |
with: | |
mode: preempt | |
sourcePath: .build/plugins/Swift-DocC/outputs/AblyChat.doccarchive # Path to the Swift DocC output folder | |
githubToken: ${{ secrets.GITHUB_TOKEN }} | |
artifactName: AblyChat | |
# Build the documentation using Swift DocC | |
- name: Build documentation | |
run: | | |
swift package generate-documentation --target AblyChat --disable-indexing \ | |
--hosting-base-path "${{ steps.preupload.outputs.base-path }}" \ | |
--transform-for-static-hosting | |
working-directory: ${{ github.workspace }} | |
# Configure AWS credentials for uploading documentation | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-region: eu-west-2 | |
role-to-assume: arn:aws:iam::${{ secrets.ABLY_AWS_ACCOUNT_ID_SDK }}:role/ably-sdk-builds-ably-chat-swift | |
role-session-name: "${{ github.run_id }}-${{ github.run_number }}" | |
# Upload the generated documentation | |
- name: Upload Documentation | |
uses: ably/sdk-upload-action@v2 | |
with: | |
sourcePath: .build/plugins/Swift-DocC/outputs/AblyChat.doccarchive # Path to the Swift DocC output folder | |
githubToken: ${{ secrets.GITHUB_TOKEN }} | |
artifactName: AblyChat # Optional root-level directory name | |
landingPagePath: documentation/ablychat | |
# We use this job as a marker that all of the required checks have completed. | |
# This allows us to configure a single required status check in our branch | |
# protection rules instead of having to type loads of different check names | |
# into the branch protection web UI (and keep this list up to date as we | |
# tweak the matrices). | |
all-checks-completed: | |
runs-on: ubuntu-latest | |
needs: | |
- lint | |
- spec-coverage | |
- build-and-test-spm | |
- build-release-configuration-spm | |
- build-and-test-xcode | |
- build-release-configuration-xcode | |
- check-example-app | |
- check-documentation | |
steps: | |
- name: No-op | |
run: "true" |