.github/workflows: Add DB tests
This commit is contained in:
parent
03b57f002c
commit
d329af12a1
2 changed files with 39 additions and 22 deletions
39
.github/workflows/tests.yml
vendored
39
.github/workflows/tests.yml
vendored
|
|
@ -38,6 +38,45 @@ jobs:
|
||||||
- name: Send coverage to codecov.io
|
- name: Send coverage to codecov.io
|
||||||
run: bash <(curl -s https://codecov.io/bash)
|
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:
|
python-lint:
|
||||||
name: "🐍 Lint (dnf-json)"
|
name: "🐍 Lint (dnf-json)"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ TEST_CASES=(
|
||||||
"osbuild-dnf-json-tests"
|
"osbuild-dnf-json-tests"
|
||||||
"osbuild-composer-cli-tests"
|
"osbuild-composer-cli-tests"
|
||||||
"osbuild-auth-tests"
|
"osbuild-auth-tests"
|
||||||
"osbuild-composer-dbjobqueue-tests"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Print out a nice test divider so we know when tests stop and start.
|
# 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.
|
# Provision the software under test.
|
||||||
/usr/libexec/osbuild-composer-test/provision.sh
|
/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.
|
# Change to the working directory.
|
||||||
cd $WORKING_DIRECTORY
|
cd $WORKING_DIRECTORY
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue