.github/workflows: Add DB tests

This commit is contained in:
Sanne Raymaekers 2022-06-10 16:13:28 +02:00 committed by Achilleas Koutsou
parent 03b57f002c
commit d329af12a1
2 changed files with 39 additions and 22 deletions

View file

@ -38,6 +38,45 @@ jobs:
- name: Send coverage to codecov.io
run: bash <(curl -s https://codecov.io/bash)
db-tests:
name: "🗄 DB tests"
runs-on: ubuntu-20.04
services:
postgres:
# 12 is used in deployments
image: postgres:12
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: foobar
POSTGRES_DB: osbuildcomposer
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: 1.16
- env:
PGUSER: postgres
PGPASSWORD: foobar
PGDATABASE: osbuildcomposer
PGHOST: localhost
PGPORT: 5432
run: |
WORKDIR=$(readlink -f pkg/jobqueue/dbjobqueue/schemas)
pushd $(mktemp -d)
go mod init temp
go get -u github.com/jackc/tern
go run github.com/jackc/tern migrate -m "$WORKDIR"
popd
- run: go test -tags=integration ./cmd/osbuild-composer-dbjobqueue-tests
- run: go test -tags=integration ./cmd/osbuild-service-maintenance
python-lint:
name: "🐍 Lint (dnf-json)"
runs-on: ubuntu-latest

View file

@ -18,7 +18,6 @@ TEST_CASES=(
"osbuild-dnf-json-tests"
"osbuild-composer-cli-tests"
"osbuild-auth-tests"
"osbuild-composer-dbjobqueue-tests"
)
# Print out a nice test divider so we know when tests stop and start.
@ -48,27 +47,6 @@ run_test_case () {
# Provision the software under test.
/usr/libexec/osbuild-composer-test/provision.sh
# Set up a basic postgres db
sudo dnf install -y go postgresql postgresql-server postgresql-contrib
PWFILE=$(sudo -u postgres mktemp)
cat <<EOF | sudo -u postgres tee "$PWFILE"
foobar
EOF
PGSETUP_INITDB_OPTIONS="-A password -U postgres --pwfile=$PWFILE" \
sudo -E postgresql-setup --initdb --unit postgresql
sudo systemctl start postgresql
PGUSER=postgres PGPASSWORD=foobar PGHOST=localhost PGPORT=5432 \
sudo -E -u postgres psql -c "CREATE DATABASE osbuildcomposer;"
# Initialize a module in a temp dir so we can get tern without introducing
# vendoring inconsistency
pushd "$(mktemp -d)"
go mod init temp
go get github.com/jackc/tern
PGUSER=postgres PGPASSWORD=foobar PGDATABASE=osbuildcomposer PGHOST=localhost PGPORT=5432 \
go run github.com/jackc/tern migrate -m /usr/share/tests/osbuild-composer/schemas
popd
# Change to the working directory.
cd $WORKING_DIRECTORY