GH-4: Add configurable migrations table name #131
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 | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
jobs: | |
run-tests: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
db: | |
- {name: postgresql} | |
- {name: mysql} | |
- {name: mssql} | |
- {name: sqlite3} | |
steps: | |
- name: Checkout Source Code | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
- name: Start Database | |
if: matrix.db.name != 'sqlite3' | |
run: | | |
env $(cat ".env.${{ matrix.db.name }}" | xargs) docker compose -f "docker-compose.${{ matrix.db.name }}.yml" up -d | |
echo "Waiting for the database to be ready..." | |
until [ "`docker inspect -f {{.State.Health.Status}} bolt_${{ matrix.db.name }}_db`" == "healthy" ]; do | |
sleep 5; | |
done | |
echo "Database is ready." | |
- name: Run Tests | |
run: env $(cat ".env.${{ matrix.db.name }}" | xargs) go test -p 1 -tags "${{ matrix.db.name }}" -covermode=count -coverprofile=coverage-${{ matrix.db.name }}.out ./... | |
- name: Upload Coverage Report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-${{ matrix.db.name }} | |
path: coverage-${{ matrix.db.name }}.out | |
combine-coverage-reports-and-upload: | |
needs: [run-tests] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Source Code | |
uses: actions/checkout@v4 | |
- name: Download Coverage Reports | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage-postgresql | |
path: . | |
- uses: actions/download-artifact@v4 | |
with: | |
name: coverage-mysql | |
path: . | |
- uses: actions/download-artifact@v4 | |
with: | |
name: coverage-mssql | |
path: . | |
- uses: actions/download-artifact@v4 | |
with: | |
name: coverage-sqlite3 | |
path: . | |
- name: Combine Coverage Reports | |
run: go run github.com/wadey/gocovmerge@b5bfa59ec0adc420475f97f89b58045c721d761c coverage-*.out > coverage.combined.out | |
- name: Show Combined Coverage | |
run: go tool cover -func=coverage.combined.out | |
- name: Upload Combined Coverage Report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: combined-coverage | |
path: coverage.combined.out | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: coverage.combined.out | |
flags: unittests | |
name: bolt-coverage | |
fail_ci_if_error: true | |