Skip to content

Update CI yet again #24

Update CI yet again

Update CI yet again #24

Workflow file for this run

name: Tests
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request: { types: [opened, reopened, synchronize, ready_for_review] }
push: { branches: [ main ] }
env:
LOG_LEVEL: info
jobs:
appleos:
if: ${{ !(github.event.pull_request.draft || false) }}
strategy:
fail-fast: false
matrix:
xcode:
#- latest
- latest-stable
platform:
- 'macOS'
- 'iOS Simulator'
- 'tvOS Simulator'
- 'watchOS Simulator'
include:
- platform: 'macOS'
destination: 'arch=x86_64'
- platform: 'iOS Simulator'
destination: 'OS=latest,name=iPhone 16 Pro'
- platform: 'tvOS Simulator'
destination: 'OS=latest,name=Apple TV 4K (3rd generation)'
- platform: 'watchOS Simulator'
destination: 'OS=latest,name=Apple Watch Series 10 (42mm)'
name: ${{ matrix.platform }} Tests
runs-on: macos-15
steps:
- name: Select latest available Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode }}
- name: Install xcbeautify
run: brew install xcbeautify
- name: Checkout code
uses: actions/checkout@v4
- name: Run tests
env:
DESTINATION: ${{ format('platform={0},{1}', matrix.platform, matrix.destination) }}
run: |
set -o pipefail && \
xcodebuild test -workspace . \
-scheme async-helpers \
-enableThreadSanitizer YES \
-enableCodeCoverage YES \
-disablePackageRepositoryCache \
-resultBundlePath "${GITHUB_WORKSPACE}/results.resultBundle" \
-destination "${DESTINATION}" |
xcbeautify --is-ci --quiet --renderer github-actions
- name: Upload coverage data
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
swift: true
verbose: true
xcode: true
xcode_archive_path: ${{ github.workspace }}/results.resultBundle
linux:
if: ${{ !(github.event.pull_request.draft || false) }}
strategy:
fail-fast: false
matrix:
swift-image:
- swift:6.0-noble
- swiftlang/swift:nightly-main-jammy
name: Linux ${{ matrix.swift-image }} Tests
runs-on: ubuntu-latest
container: ${{ matrix.swift-image }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install xcbeautify
run: |
DEBIAN_FRONTEND=noninteractive apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y curl xz-utils make
git clone https://github.com/cpisciotta/xcbeautify.git -b 2.15.0
cd xcbeautify
make install PREFIX=/usr
- name: Run tests
shell: bash
run: |
set -o pipefail && \
swift test --sanitize=thread --enable-code-coverage |
xcbeautify --is-ci --quiet --renderer github-actions
- name: Upload coverage data
uses: vapor/swift-codecov-action@v0.3
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
codeql:
if: ${{ !(github.event.pull_request.draft || false) }}
name: CodeQL Analysis
runs-on: ubuntu-latest
container:
image: swift:6.0-noble
permissions: { actions: write, contents: read, security-events: write }
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Mark repo safe
run: |
git config --global --add safe.directory "${GITHUB_WORKSPACE}"
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with: { languages: swift }
- name: Perform build
run: swift build
- name: Run CodeQL analyze
uses: github/codeql-action/analyze@v2