forked from m-barthelemy/vapor-queues-fluent-driver
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make Postgres and MySQL connection params separately configurable, ta…
…ke another whack at the CI
- Loading branch information
Showing
2 changed files
with
98 additions
and
15 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,90 @@ on: | |
push: { branches: [ main ] } | ||
|
||
jobs: | ||
unit-tests: | ||
uses: vapor/ci/.github/workflows/run-unit-tests.yml@main | ||
secrets: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
api-breakage: | ||
if: ${{ github.event_name == 'pull_request' && !github.event.pull_request.draft }} | ||
runs-on: ubuntu-latest | ||
container: swift:noble | ||
timeout-minutes: 30 | ||
steps: | ||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
with: { 'fetch-depth': 0 } | ||
- name: Run API breakage check | ||
run: | | ||
git config --global --add safe.directory "${GITHUB_WORKSPACE}" | ||
swift package diagnose-api-breaking-changes origin/main | ||
linux-unit: | ||
if: ${{ !(github.event.pull_request.draft || false) }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
swift-image: | ||
- swift:5.8-jammy | ||
- swift:5.9-jammy | ||
- swift:5.10-noble | ||
- swiftlang/swift:nightly-6.0-jammy | ||
- swiftlang/swift:nightly-main-jammy | ||
runs-on: ubuntu-latest | ||
container: ${{ matrix.swift-image }} | ||
services: | ||
psql: { image: 'postgres:16', env: { POSTGRES_USER: test_username, POSTGRES_PASSWORD: test_password, POSTGRES_DB: test_database, POSTGRES_HOST_AUTH_METHOD: scram-sha-256, POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256 } } | ||
mysql: { image: 'mysql:8', env: { MYSQL_ALLOW_EMPTY_PASSWORD: true, MYSQL_USER: test_username, MYSQL_PASSWORD: test_password, MYSQL_DATABASE: test_database } } | ||
timeout-minutes: 60 | ||
steps: | ||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
- name: Run unit tests | ||
env: | ||
POSTGRES_HOST: psql | ||
MYSQL_HOST: mysql | ||
run: SWIFT_DETERMINISTIC_HASHING=1 swift test --sanitize=thread --enable-code-coverage | ||
- name: Upload coverage data | ||
uses: vapor/[email protected] | ||
with: | ||
codecov_token: ${{ secrets.CODECOV_TOKEN || '' }} | ||
|
||
macos-unit: | ||
if: ${{ !(github.event.pull_request.draft || false) }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- macos-version: macos-13 | ||
xcode-version: '~15.2' | ||
- macos-version: macos-14 | ||
xcode-version: latest-stable | ||
runs-on: ${{ matrix.macos-version }} | ||
timeout-minutes: 60 | ||
steps: | ||
- name: Select appropriate Xcode version | ||
uses: maxim-lobanov/setup-xcode@v1 | ||
with: | ||
xcode-version: ${{ matrix.xcode-version }} | ||
- name: Install and setup Postgres and MySQL | ||
run: | | ||
export PATH="$(brew --prefix)/opt/postgresql@16/bin:$PATH" PGDATA=/tmp/vapor-postgres-test | ||
(brew upgrade [email protected] || true) && (brew link --force --overwrite [email protected] || true) | ||
(brew upgrade [email protected] || true) && (brew link --force --overwrite [email protected] || true) | ||
(brew upgrade || true) | ||
brew install --overwrite postgresql@16 && brew link --overwrite --force postgresql@16 | ||
initdb --locale=C --auth-host scram-sha-256 -U test_username --pwfile=<(echo test_password) | ||
pg_ctl start --wait | ||
PGPASSWORD=test_password createdb -w -U test_username -O test_username test_database | ||
PGPASSWORD=test_password psql -U test_username -w test_database <<<"ALTER SCHEMA public OWNER TO test_username;" | ||
brew install mysql && brew link --force mysql && brew services start mysql | ||
until echo | mysql -uroot; do sleep 1; done | ||
mysql -uroot --batch <<-'SQL' | ||
CREATE USER test_username@localhost IDENTIFIED BY 'test_password'; | ||
CREATE DATABASE test_database; | ||
GRANT ALL PRIVILEGES ON test_database.* TO test_username@localhost; | ||
SQL | ||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
- name: Run unit tests | ||
run: SWIFT_DETERMINISTIC_HASHING=1 swift test --sanitize=thread --eanble-code-coverage | ||
- name: Upload coverage data | ||
uses: vapor/[email protected] | ||
with: | ||
codecov_token: ${{ secrets.CODECOV_TOKEN || '' }} |
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