85 lines
3.5 KiB
YAML
85 lines
3.5 KiB
YAML
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@0.0.11
|
|
with:
|
|
enable_cross_pr_testing: true
|
|
linux_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}, {\"swift_version\": \"5.10\"}]"
|
|
windows_exclude_swift_versions: "[{\"swift_version\": \"5.9\"}]"
|
|
soundness:
|
|
name: Soundness
|
|
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@0.0.11
|
|
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@v6
|
|
with:
|
|
persist-credentials: false
|
|
- name: Mark the workspace as safe
|
|
# https://github.com/actions/checkout/issues/766
|
|
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
|
|
- 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: Add local swift-format to PATH
|
|
run: |
|
|
# Add the locally built version of swift-format to PATH so it gets picked up by check-swift-format.sh
|
|
echo "PATH=$(pwd)/.build/release:$PATH" >> "$GITHUB_ENV"
|
|
- name: Download check format script
|
|
run: |
|
|
curl https://raw.githubusercontent.com/swiftlang/github-workflows/refs/heads/main/.github/workflows/scripts/check-swift-format.sh > /tmp/check-swift-format.sh
|
|
chmod +x /tmp/check-swift-format.sh
|
|
- name: Format swift-format
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE"
|
|
/tmp/check-swift-format.sh
|
|
- name: Checkout swift-syntax
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: swiftlang/swift-syntax
|
|
persist-credentials: false
|
|
path: swift-syntax
|
|
- name: Format swift-syntax
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE/swift-syntax"
|
|
/tmp/check-swift-format.sh
|
|
- name: Checkout sourcekit-lsp
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: swiftlang/sourcekit-lsp
|
|
persist-credentials: false
|
|
path: sourcekit-lsp
|
|
- name: Format sourcekit-lsp
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE/sourcekit-lsp"
|
|
/tmp/check-swift-format.sh
|