diff --git a/.github/workflows/test.yaml b/.github/workflows/app-testing.yaml similarity index 100% rename from .github/workflows/test.yaml rename to .github/workflows/app-testing.yaml diff --git a/.github/workflows/migrations-testing.yaml b/.github/workflows/migrations-testing.yaml new file mode 100644 index 0000000..b1a24f0 --- /dev/null +++ b/.github/workflows/migrations-testing.yaml @@ -0,0 +1,43 @@ +name: Run migrations seqwall test + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:18-alpine + env: + POSTGRES_PASSWORD: password + POSTGRES_DB: migrations_test_db + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v7 + + - name: Set up Go + uses: actions/setup-go@v7 + with: + go-version: 'stable' + cache: false + + - name: Install seqwall + run: go install github.com/realkarych/seqwall@latest + + - name: Install golang-migrate + run: go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest + + - name: Run tests + env: + TEST_DB_URL: postgres://postgres:password@localhost:5432/migrations_test_db?sslmode=disable + run: | + seqwall staircase \ + --postgres-url "$TEST_DB_URL" \ + --migrations-path ./migrations \ + --migrations-extension ."up.sql" \ + --upgrade "bash scripts/ci-up-one.sh {current_migration} \"$TEST_DB_URL\"" \ + --downgrade "bash scripts/ci-down-one.sh {current_migration} \"$TEST_DB_URL\"" +