diff --git a/.github/workflows/go-test.yml b/.github/workflows/go-test.yml index 7479817..90dfcaa 100644 --- a/.github/workflows/go-test.yml +++ b/.github/workflows/go-test.yml @@ -62,3 +62,70 @@ jobs: - name: Run Tests run: | go test ./... + + integration-test-pg: + name: Run integration tests (pg) + runs-on: ubuntu-latest + services: + postgres: + image: postgres:16 + env: + POSTGRES_USER: dawgs + POSTGRES_PASSWORD: weneedbetterpasswords + POSTGRES_DB: dawgs + ports: + - 5432:5432 + options: >- + --health-cmd "pg_isready -U dawgs -d dawgs" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - name: Checkout source code for this repository + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + check-latest: true + + - name: Run integration tests + env: + CONNECTION_STRING: postgres://dawgs:weneedbetterpasswords@localhost:5432/dawgs?sslmode=disable + run: | + go test -tags manual_integration ./integration + + integration-test-neo4j: + name: Run integration tests (neo4j) + runs-on: ubuntu-latest + services: + neo4j: + image: neo4j:4.4.42 + env: + NEO4J_AUTH: neo4j/weneedbetterpasswords + ports: + - 7687:7687 + options: >- + --health-cmd "wget -q -O /dev/null http://localhost:7474 || exit 1" + --health-interval 15s + --health-timeout 10s + --health-retries 10 + --health-start-period 40s + steps: + - name: Checkout source code for this repository + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + check-latest: true + + - name: Run integration tests + env: + CONNECTION_STRING: neo4j://neo4j:weneedbetterpasswords@localhost:7687 + run: | + go test -tags manual_integration ./integration diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..933c063 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,25 @@ +services: + postgres: + image: postgres:16 + environment: + POSTGRES_USER: dawgs + POSTGRES_PASSWORD: weneedbetterpasswords + POSTGRES_DB: dawgs + ports: + - "65432:5432" + volumes: + - pg_data:/var/lib/postgresql/data + + neo4j: + image: neo4j:4.4.42 + environment: + NEO4J_AUTH: neo4j/weneedbetterpasswords + ports: + - "7687:7687" + - "7474:7474" + volumes: + - neo4j_data:/data + +volumes: + pg_data: + neo4j_data: