mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2025-12-13 17:10:36 +00:00
76 lines
2.6 KiB
YAML
76 lines
2.6 KiB
YAML
name: Tests
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
pull_request:
|
|
branches: [main, develop]
|
|
jobs:
|
|
unit-tests:
|
|
name: Unit Tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: "1.24"
|
|
- name: Run unit tests
|
|
run: go test ./pkg/resolvespec ./pkg/restheadspec -v -cover
|
|
- name: Generate coverage report
|
|
run: |
|
|
go test ./pkg/resolvespec ./pkg/restheadspec -coverprofile=coverage.out
|
|
go tool cover -html=coverage.out -o coverage.html
|
|
- name: Upload coverage
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: coverage-report
|
|
path: coverage.html
|
|
integration-tests:
|
|
name: Integration Tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: "1.24"
|
|
- name: Create test databases
|
|
env:
|
|
PGPASSWORD: postgres
|
|
run: |
|
|
psql -h localhost -U postgres -c "CREATE DATABASE resolvespec_test;"
|
|
psql -h localhost -U postgres -c "CREATE DATABASE restheadspec_test;"
|
|
- name: Run resolvespec integration tests
|
|
env:
|
|
TEST_DATABASE_URL: "host=localhost user=postgres password=postgres dbname=resolvespec_test port=5432 sslmode=disable"
|
|
run: go test -tags=integration ./pkg/resolvespec -v
|
|
- name: Run restheadspec integration tests
|
|
env:
|
|
TEST_DATABASE_URL: "host=localhost user=postgres password=postgres dbname=restheadspec_test port=5432 sslmode=disable"
|
|
run: go test -tags=integration ./pkg/restheadspec -v
|
|
- name: Generate integration coverage
|
|
env:
|
|
TEST_DATABASE_URL: "host=localhost user=postgres password=postgres dbname=resolvespec_test port=5432 sslmode=disable"
|
|
run: |
|
|
go test -tags=integration ./pkg/resolvespec ./pkg/restheadspec -coverprofile=coverage-integration.out
|
|
go tool cover -html=coverage-integration.out -o coverage-integration.html
|
|
- name: Upload integration coverage
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: integration-coverage-report
|
|
path: coverage-integration.html
|