Update for the nested subpath changes in FluentKit #117
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
MYSQL_HOSTNAME: 'mysql-a' | |
MYSQL_HOSTNAME_A: 'mysql-a' | |
MYSQL_HOSTNAME_B: 'mysql-b' | |
MYSQL_DATABASE: 'test_database' | |
MYSQL_DATABASE_A: 'test_database' | |
MYSQL_DATABASE_B: 'test_database' | |
MYSQL_USERNAME: 'test_username' | |
MYSQL_USERNAME_A: 'test_username' | |
MYSQL_USERNAME_B: 'test_username' | |
MYSQL_PASSWORD: 'test_password' | |
MYSQL_PASSWORD_A: 'test_password' | |
MYSQL_PASSWORD_B: 'test_password' | |
jobs: | |
api-breakage: | |
if: ${{ !(github.event.pull_request.draft || false) }} | |
runs-on: ubuntu-latest | |
container: swift:5.8-jammy | |
steps: | |
- name: Check out package | |
uses: actions/checkout@v3 | |
with: { 'fetch-depth': 0 } | |
- name: Run API breakage check action | |
uses: vapor/ci/.github/actions/ci-swift-check-api-breakage@reusable-workflows | |
linux-unit: | |
if: ${{ !(github.event.pull_request.draft || false) }} | |
strategy: | |
fail-fast: false | |
matrix: | |
dbimage: | |
- mysql:5.7 | |
- mysql:8.0 | |
- mariadb:10.4 | |
- mariadb:11 | |
- percona:8.0 | |
runner: | |
- swift:5.6-focal | |
- swift:5.7-jammy | |
- swift:5.8-jammy | |
- swiftlang/swift:nightly-5.9-jammy | |
- swiftlang/swift:nightly-main-jammy | |
runs-on: ubuntu-latest | |
container: ${{ matrix.runner }} | |
services: | |
mysql-a: | |
image: ${{ matrix.dbimage }} | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: "true" | |
MYSQL_USER: test_username | |
MYSQL_PASSWORD: test_password | |
MYSQL_DATABASE: test_database | |
mysql-b: | |
image: ${{ matrix.dbimage }} | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: "true" | |
MYSQL_USER: test_username | |
MYSQL_PASSWORD: test_password | |
MYSQL_DATABASE: test_database | |
steps: | |
- name: Display versions | |
shell: bash | |
run: | | |
echo MYSQL_VERSION='${{ matrix.dbimage }}' >> $GITHUB_ENV | |
if [[ '${{ contains(matrix.container, 'nightly') }}' == 'true' ]]; then | |
SWIFT_PLATFORM="$(source /etc/os-release && echo "${ID}${VERSION_ID}")" SWIFT_VERSION="$(cat /.swift_tag)" | |
printf 'SWIFT_PLATFORM=%s\nSWIFT_VERSION=%s\n' "${SWIFT_PLATFORM}" "${SWIFT_VERSION}" >>"${GITHUB_ENV}" | |
fi | |
printf 'OS: %s\nTag: %s\nVersion:\n' "${SWIFT_PLATFORM}-${RUNNER_ARCH}" "${SWIFT_VERSION}" && swift --version | |
- name: Check out package | |
uses: actions/checkout@v3 | |
- name: Run tests with Thread Sanitizer and coverage | |
run: swift test --sanitize=thread --enable-code-coverage | |
- name: Submit coverage report to Codecov.io | |
uses: vapor/swift-codecov-action@v0.2 | |
with: | |
cc_env_vars: 'SWIFT_VERSION,SWIFT_PLATFORM,RUNNER_OS,RUNNER_ARCH,MYSQL_VERSION' | |
macos-unit: | |
if: ${{ !(github.event.pull_request.draft || false) }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- dbimage: mysql@8.0 | |
macos: macos-13 | |
xcode: latest-stable | |
runs-on: ${{ matrix.macos }} | |
steps: | |
- name: Select latest available Xcode | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.xcode }} | |
- name: Install MySQL server from Homebrew | |
run: brew install ${{ matrix.dbimage }} && brew link --force ${{ matrix.dbimage }} | |
- name: Start MySQL server | |
run: brew services start ${{ matrix.dbimage }} | |
- name: Wait for MySQL server to be ready | |
run: until echo | mysql -uroot; do sleep 1; done | |
timeout-minutes: 5 | |
- name: Set up MySQL databases and privileges | |
run: | | |
mysql -uroot --batch <<-'SQL' | |
CREATE USER test_username@localhost IDENTIFIED BY 'test_password'; | |
CREATE DATABASE test_database_a; GRANT ALL PRIVILEGES ON test_database_a.* TO test_username@localhost; | |
CREATE DATABASE test_database_b; GRANT ALL PRIVILEGES ON test_database_b.* TO test_username@localhost; | |
SQL | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Run tests with Thread Sanitizer | |
run: swift test --sanitize=thread | |
env: | |
MYSQL_HOSTNAME_A: '127.0.0.1' | |
MYSQL_HOSTNAME_B: '127.0.0.1' | |
MYSQL_DATABASE_A: test_database_a | |
MYSQL_DATABASE_B: test_database_b |