Skip to content

Update Swift Versions #208

Update Swift Versions

Update Swift Versions #208

Workflow file for this run

name: test
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
SWIFT_DETERMINISTIC_HASHING: 1
jobs:
integration-linux:
if: ${{ github.event_name == 'pull_request' && !github.event.pull_request.draft }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ toJSON(matrix) }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
fluentflags:
- --no-fluent
# - --fluent.db mysql
- --fluent.db postgres
- --fluent.db sqlite
- --fluent.db mongo
leafflags: [--leaf, --no-leaf]
include:
# - fluentflags: '--fluent.db mysql'
# dbhostname: mysql
- fluentflags: '--fluent.db postgres'
dbhostname: psql
- fluentflags: '--fluent.db mongo'
dbhosturl: 'mongodb://mongo:27017/vapor_database'
runs-on: ubuntu-latest
container: swift:5.10-jammy
services:
mongo: { image: 'mongo:latest' }
# mysql:
# image: mysql:latest
# env: { MYSQL_ALLOW_EMPTY_PASSWORD: 'true', MYSQL_USER: vapor_username, MYSQL_PASSWORD: vapor_password, MYSQL_DATABASE: vapor_database }
psql:
image: postgres:latest
env: { POSTGRES_USER: vapor_username, POSTGRES_DB: vapor_database, POSTGRES_PASSWORD: vapor_password,
POSTGRES_HOST_AUTH_METHOD: 'scram-sha-256', POSTGRES_INITDB_ARGS: '--auth-host=scram-sha-256' }
steps:
- name: Check out toolbox
uses: actions/checkout@v4
- name: Build toolbox
run: swift build
- name: Execute new project command
env:
FLUENTFLAGS: ${{ matrix.fluentflags }}
LEAFFLAGS: ${{ matrix.leafflags }}
run: |
swift run \
vapor new toolbox-test \
--no-commit -o /tmp/toolbox-test \
${FLUENTFLAGS} ${LEAFFLAGS}
- name: Test new project
run: swift test --package-path /tmp/toolbox-test
env:
DATABASE_HOST: ${{ matrix.dbhostname }}
DATABASE_URL: ${{ matrix.dbhosturl }}
integration-macos:
strategy:
fail-fast: false
matrix:
fluentflags:
- --no-fluent
- --fluent.db mysql
- --fluent.db postgres
- --fluent.db sqlite
- --fluent.db mongo
leafflags: [--leaf, --no-leaf]
runs-on: macos-14
steps:
- name: Select toolchain
uses: maxim-lobanov/setup-xcode@v1
with: { xcode-version: latest-stable }
- name: Check out toolbox
uses: actions/checkout@v4
- name: Build toolbox
run: swift build
- name: Execute new project command
env:
FLUENTFLAGS: ${{ matrix.fluentflags }}
LEAFFLAGS: ${{ matrix.leafflags }}
run: |
swift run \
vapor new toolbox-test \
--no-commit -o /tmp/toolbox-test \
${FLUENTFLAGS} ${LEAFFLAGS}
- name: Test new project
run: swift build --package-path /tmp/toolbox-test
gh-codeql:
strategy:
fail-fast: false
matrix:
runner-os: ['ubuntu-latest', 'macos-13']
runs-on: ${{ matrix.runner-os }}
permissions: { actions: write, contents: read, security-events: write }
timeout-minutes: 60
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Select Swift 5.8 on Linux
if: ${{ startsWith(matrix.runner-os, 'ubuntu') }}
uses: vapor/swiftly-action@v0.1
with:
toolchain: 5.8
- name: Select Swift 5.8 on macOS
if: ${{ startsWith(matrix.runner-os, 'macos') }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '~14.3'
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with: { languages: swift }
- name: Perform build
run: swift build
- name: Run CodeQL analyze
uses: github/codeql-action/analyze@v3