From e58599398ca1da6394384ee06003c8bce2c2ef4f Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Fri, 24 Oct 2025 11:05:49 +0200 Subject: [PATCH 1/9] feat: run integration tests in CI --- .github/workflows/build-and-test.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 125ae7e..5bd8077 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -42,5 +42,12 @@ jobs: version: latest args: --timeout=1m - - name: Run tests + - name: Run unit tests run: go test -v -race ./... + + - name: Run integration tests + run: go test -v -tags=integration ./test/integration/... + env: + USE_CONTAINER: "false" + NEO_PASSWORD: ${{ secrets.AURA_PASSWORD }} + NEO_URL: ${{ secrets.AURA_URI }} From 1924f153dd8d8e233897152abc32225ab7e7dc10 Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 10:22:39 +0100 Subject: [PATCH 2/9] fix: change env vars names --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5bd8077..42245fc 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -49,5 +49,5 @@ jobs: run: go test -v -tags=integration ./test/integration/... env: USE_CONTAINER: "false" - NEO_PASSWORD: ${{ secrets.AURA_PASSWORD }} - NEO_URL: ${{ secrets.AURA_URI }} + NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} + NEO4J_URL: ${{ secrets.AURA_URI }} From b9e07d6f8e08c4f71707bde3b8e5024534f70688 Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 10:25:06 +0100 Subject: [PATCH 3/9] fix: change secret name --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 42245fc..f5d8dc6 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -50,4 +50,4 @@ jobs: env: USE_CONTAINER: "false" NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} - NEO4J_URL: ${{ secrets.AURA_URI }} + NEO4J_URL: ${{ secrets.AURA_URL }} From 1d2d70dd1efdee75a81b1e0fe4394f96886ecef4 Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 10:29:09 +0100 Subject: [PATCH 4/9] fix: default to password --- test/integration/dbservice/dbservice.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/dbservice/dbservice.go b/test/integration/dbservice/dbservice.go index e819baa..5811642 100644 --- a/test/integration/dbservice/dbservice.go +++ b/test/integration/dbservice/dbservice.go @@ -47,7 +47,7 @@ func (dbs *dbService) GetDriver() *neo4j.DriverWithContext { cfg := &config.Config{ URI: config.GetEnvWithDefault("NEO4J_URI", "bolt://localhost:7687"), Username: config.GetEnvWithDefault("NEO4J_USERNAME", "neo4j"), - Password: config.GetEnvWithDefault("NEO4J_PASSWORD", "longerpassword"), + Password: config.GetEnvWithDefault("NEO4J_PASSWORD", "password"), Database: config.GetEnvWithDefault("NEO4J_DATABASE", "neo4j"), } From 5f13610403bc56c0788cbe1f350a7f93e36baf2d Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 10:33:13 +0100 Subject: [PATCH 5/9] fix: URL to URI --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f5d8dc6..8f1ba9e 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -50,4 +50,4 @@ jobs: env: USE_CONTAINER: "false" NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} - NEO4J_URL: ${{ secrets.AURA_URL }} + NEO4J_URI: ${{ secrets.AURA_URL }} From 950a1b304eed0fc8b764b4f35bb631110d248b37 Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 13:37:13 +0100 Subject: [PATCH 6/9] feat: make separate workflows What we want across OSes: building integration testing What we want on one OS (ubuntu): linting mock generation unit tests --- .../workflows/build-and-integration-test.yml | 37 +++++++++++++++++++ ...ld-and-test.yml => lint-and-unit-test.yml} | 14 +------ 2 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/build-and-integration-test.yml rename .github/workflows/{build-and-test.yml => lint-and-unit-test.yml} (72%) diff --git a/.github/workflows/build-and-integration-test.yml b/.github/workflows/build-and-integration-test.yml new file mode 100644 index 0000000..26efd93 --- /dev/null +++ b/.github/workflows/build-and-integration-test.yml @@ -0,0 +1,37 @@ +name: Build and Test + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + + - name: Set up Go + uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6 + with: + go-version: "1.25.3" + - run: go install go.uber.org/mock/mockgen@latest + + - name: Download dependencies + run: go mod download + + - name: Build + run: go build -v ./... + + - name: Run integration tests + run: go test -v -tags=integration ./test/integration/... + env: + USE_CONTAINER: "false" + NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} + NEO4J_URI: ${{ secrets.AURA_URL }} diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/lint-and-unit-test.yml similarity index 72% rename from .github/workflows/build-and-test.yml rename to .github/workflows/lint-and-unit-test.yml index 8f1ba9e..19c9250 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/lint-and-unit-test.yml @@ -10,9 +10,7 @@ jobs: test: strategy: fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 @@ -33,9 +31,6 @@ jobs: run: | git diff --exit-code || (echo "Generated mocks are not up-to-date. Please run 'go generate ./...' locally and push the updated files." && exit 1) - - name: Build - run: go build -v ./... - - name: Run golangci-lint uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8 with: @@ -44,10 +39,3 @@ jobs: - name: Run unit tests run: go test -v -race ./... - - - name: Run integration tests - run: go test -v -tags=integration ./test/integration/... - env: - USE_CONTAINER: "false" - NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} - NEO4J_URI: ${{ secrets.AURA_URL }} From 55f61bfaa0aa7d8b346ae8f15f7b39a16f051b4b Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 13:45:29 +0100 Subject: [PATCH 7/9] fix: rename workflows --- .github/workflows/build-and-integration-test.yml | 2 +- .github/workflows/lint-and-unit-test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-integration-test.yml b/.github/workflows/build-and-integration-test.yml index 26efd93..bf8e4f9 100644 --- a/.github/workflows/build-and-integration-test.yml +++ b/.github/workflows/build-and-integration-test.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Build and Integration Test on: push: diff --git a/.github/workflows/lint-and-unit-test.yml b/.github/workflows/lint-and-unit-test.yml index 19c9250..21e5006 100644 --- a/.github/workflows/lint-and-unit-test.yml +++ b/.github/workflows/lint-and-unit-test.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Lint and Unit Test on: push: From 44a36b148325b2ef3550a31283c8d931a6b91a33 Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 13:51:08 +0100 Subject: [PATCH 8/9] feat: use one workflow with two jobs --- .../workflows/build-and-integration-test.yml | 37 ------------------- ...t-and-unit-test.yml => build-and-test.yml} | 35 +++++++++++++++++- 2 files changed, 33 insertions(+), 39 deletions(-) delete mode 100644 .github/workflows/build-and-integration-test.yml rename .github/workflows/{lint-and-unit-test.yml => build-and-test.yml} (52%) diff --git a/.github/workflows/build-and-integration-test.yml b/.github/workflows/build-and-integration-test.yml deleted file mode 100644 index bf8e4f9..0000000 --- a/.github/workflows/build-and-integration-test.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build and Integration Test - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 - - - name: Set up Go - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6 - with: - go-version: "1.25.3" - - run: go install go.uber.org/mock/mockgen@latest - - - name: Download dependencies - run: go mod download - - - name: Build - run: go build -v ./... - - - name: Run integration tests - run: go test -v -tags=integration ./test/integration/... - env: - USE_CONTAINER: "false" - NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} - NEO4J_URI: ${{ secrets.AURA_URL }} diff --git a/.github/workflows/lint-and-unit-test.yml b/.github/workflows/build-and-test.yml similarity index 52% rename from .github/workflows/lint-and-unit-test.yml rename to .github/workflows/build-and-test.yml index 21e5006..b835117 100644 --- a/.github/workflows/lint-and-unit-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,4 +1,4 @@ -name: Lint and Unit Test +name: Build and Test on: push: @@ -7,7 +7,8 @@ on: branches: [main] jobs: - test: + lint-and-unit-test: + name: Lint and Unit Test strategy: fail-fast: false runs-on: ubuntu-latest @@ -39,3 +40,33 @@ jobs: - name: Run unit tests run: go test -v -race ./... + + integration-tests: + name: Build and Integration Tests + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + + - name: Set up Go + uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6 + with: + go-version: "1.25.3" + - run: go install go.uber.org/mock/mockgen@latest + + - name: Download dependencies + run: go mod download + + - name: Build + run: go build -v ./... + + - name: Run integration tests + run: go test -v -tags=integration ./test/integration/... + env: + USE_CONTAINER: "false" + NEO4J_PASSWORD: ${{ secrets.AURA_PASSWORD }} + NEO4J_URI: ${{ secrets.AURA_URL }} From 1b44d6cb64e5a24c94000d4bdec0b1630898f6be Mon Sep 17 00:00:00 2001 From: Michael Webb Date: Thu, 30 Oct 2025 15:25:18 +0100 Subject: [PATCH 9/9] feat: don't install mockgen in integration tests step --- .github/workflows/build-and-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b835117..8314a40 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -56,7 +56,6 @@ jobs: uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6 with: go-version: "1.25.3" - - run: go install go.uber.org/mock/mockgen@latest - name: Download dependencies run: go mod download