Skip to content

GHA: Enable Testing #1237

GHA: Enable Testing

GHA: Enable Testing #1237

Workflow file for this run

name: Pull request
permissions:
contents: read
on:
pull_request:
types: [opened, reopened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-test:
needs: [soundness]
strategy:
fail-fast: false
matrix:
executableTargetBuildSystem: ["native", "swiftbuild"]
buildSystem: ["native", "swiftbuild"]
linuxSwiftVersion: ['["nightly-main", "nightly-6.3"]', '["nightly-main"]']
# exclude:
# - buildSystem: "swiftbuild"
# linuxSwiftVersion: '["nightly-main", "nightly-6.3"]'
# - buildSystem: "native"
# linuxSwiftVersion: '["nightly-main"]'
name: "Build and Test (${{ matrix.buildSystem }}) (exectable target built using ${{ matrix.executableTargetBuildSystem }})"
# uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.9
uses: bkhouri/github-workflows/.github/workflows/swift_package_test.yml@t/main/gh144_support_publishing_test_results
with:
linux_publish_test_results: true
linux_os_versions: '["amazonlinux2", "bookworm", "noble", "jammy", "rhel-ubi9"]'
linux_swift_versions: ${{ matrix.linuxSwiftVersion }}
linux_pre_build_command: ./.github/scripts/prebuild.sh
linux_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem}} --experimental-xunit-message-failure --xunit-output linux-xunit.xml'
# windows_os_versions: '["windows-2022", "windows-11-arm"]'
windows_build_timeout: 240
windows_swift_versions: '["nightly-main"]'
windows_pre_build_command: 'Invoke-Program .\.github\scripts\prebuild.ps1'
windows_publish_test_results: true
windows_build_command: 'Invoke-Program swift run -Xlinker /ignore:4217 --configuration release --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests -Xlinker /ignore:4217 --build-system ${{ matrix.buildSystem}}; Invoke-Program swift run --build-system ${{ matrix.executableTargetBuildSystem }} -Xlinker /ignore:4217 --configuration release swift-test -Xlinker /ignore:4217 --parallel --build-system ${{ matrix.buildSystem}} --experimental-xunit-message-failure --xunit-output windows-xunit.xml'
enable_windows_checks: true
enable_ios_checks: false
enable_macos_checks: true
macos_publish_test_results: true
macos_exclude_xcode_versions: "[{\"xcode_version\": \"16.4\"}]" # Need to run against macOS OSS Toolchain: https://github.com/swiftlang/github-workflows/issues/240
macos_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem}} --experimental-xunit-message-failure --xunit-output macos-xunit.xml'
ios_publish_test_results: true
ios_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem}} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios && swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-test --parallel --build-system ${{ matrix.buildSystem }} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios --experimental-xunit-message-failure --xunit-output ios-xunit.xml'
tests-without-docker:
name: "Build and Test without Docker (${{ matrix.buildSystem }}) (exectable target built using ${{ matrix.executableTargetBuildSystem }})"
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.9
needs: [soundness]
strategy:
fail-fast: false
matrix:
executableTargetBuildSystem: ["native"]
buildSystem: ["native", "swiftbuild"]
with:
enable_linux_checks: false
enable_macos_checks: false
enable_windows_docker: false
windows_build_timeout: 240
windows_pre_build_command: 'Invoke-Program .\.github\scripts\prebuild.ps1'
windows_swift_versions: '["nightly-main", "nightly-6.3"]'
windows_build_command: 'Invoke-Program swift run -Xlinker /ignore:4217 --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests -Xlinker /ignore:4217 --build-system ${{ matrix.buildSystem}}; Invoke-Program swift run --build-system ${{ matrix.executableTargetBuildSystem }} -Xlinker /ignore:4217 swift-test -Xlinker /ignore:4217 --parallel --build-system ${{ matrix.buildSystem}}'
# windows_os_versions: '["windows-2022", "windows-11-arm"]'
# build-using-swiftbuild:
# strategy:
# fail-fast: false
# matrix:
# executableTargetBuildSystem: ["swiftbuild"]
# buildSystem: ["swiftbuild"]
# name: Build (${{ matrix.buildSystem }}) (exectable target built using ${{ matrix.executableTargetBuildSystem }})
# needs: [soundness]
# uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.9
# with:
# linux_os_versions: '["amazonlinux2", "bookworm", "noble", "jammy", "rhel-ubi9"]'
# linux_swift_versions: '["nightly-main"]'
# linux_pre_build_command: ./.github/scripts/prebuild.sh
# linux_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
# enable_windows_checks: false
# windows_build_timeout: 180
# windows_swift_versions: '["nightly-main"]'
# windows_pre_build_command: 'Invoke-Program .\.github\scripts\prebuild.ps1'
# windows_build_command: 'Invoke-Program swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
# enable_ios_checks: false
# enable_macos_checks: true
# macos_exclude_xcode_versions: "[{\"xcode_version\": \"16.3\"}, {\"xcode_version\": \"16.4\"}]"
# macos_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }}'
# ios_build_command: 'set -x; swift run --build-system ${{ matrix.executableTargetBuildSystem }} swift-build --build-tests --build-system ${{ matrix.buildSystem }} --sdk \"$(xcrun --sdk iphoneos --show-sdk-path)\" --triple arm64-apple-ios'
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@0.0.9
with:
license_header_check_project_name: "Swift"
license_header_check_enabled: true
unacceptable_language_check_enabled: true
api_breakage_check_enabled: false
format_check_enabled: false
shell_check_enabled: false
docs_check_enabled: true
broken_symlink_check_enabled: true
python_lint_check_enabled: true
yamllint_check_enabled: true