Skip to content

Add GitHub workflow to ensure formatting is not broken on a set of pilot projects #505

Add GitHub workflow to ensure formatting is not broken on a set of pilot projects

Add GitHub workflow to ensure formatting is not broken on a set of pilot projects #505

Workflow file for this run

name: Pull request
# PRs created by GitHub Actions don't kick off further actions (https://github.com/peter-evans/create-pull-request/blob/d57e551ebc1a16dee0b8c9ea6d24dba7627a6e35/docs/concepts-guidelines.md#triggering-further-workflow-runs).
# As a workaround, we mark automerge PRs that are created by GitHub actions as draft and trigger the GitHub actions by marking the PR as ready for review. We'd prefer not re-triggering testing on a normal user's PR in this case, but skipping them causes the checks to reset.
permissions:
contents: read
on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
name: Test
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
enable_cross_pr_testing: true
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
with:
license_header_check_project_name: "Swift.org"
api_breakage_check_allowlist_path: "api-breakages.txt"
compatibility_check:
# Format a list of real-world projects that enforce formatting using the latest swift-format version.
name: Check compatibility with real world projects
runs-on: ubuntu-latest
container:
image: swift:6.2
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check out related PRs
run: |
apt-get update && apt-get install -y curl
curl -s https://raw.githubusercontent.com/swiftlang/github-workflows/refs/heads/main/.github/workflows/scripts/cross-pr-checkout.swift > /tmp/cross-pr-checkout.swift
swift /tmp/cross-pr-checkout.swift "${{ github.repository }}" "${{ github.event.number }}"
- name: Build
run: swift build --configuration release
- name: Format swift-format
run: .build/release/swift-format lint --parallel --recursive --strict .
- name: Checkout swift-syntax
uses: actions/checkout@v4
with:
repository: swiftlang/swift-syntax
persist-credentials: false
path: swift-syntax
- name: Format swift-syntax
run: .build/release/swift-format lint --parallel --recursive --strict swift-syntax
- name: Checkout sourcekit-lsp
uses: actions/checkout@v4
with:
repository: swiftlang/sourcekit-lsp
persist-credentials: false
path: sourcekit-lsp
- name: Format sourcekit-lsp
run: .build/release/swift-format lint --parallel --recursive --strict sourcekit-lsp