Skip to content

Commit

Permalink
Add Github Actions workflow as CI (#1)
Browse files Browse the repository at this point in the history
Adding CI to this project using Github Actions.

It will run:
- unit tests, go test in the root directory
- fuzz tests, go test in the fuzz/ directory
- integration tests, go test in the integration/ directory
- `golangci-lint run ./...` in all modules
- `go vet ./...` in all modules

We need to run these commands in all Go module directories because the
expansion pattern `./...` in the root module will not expand to the Go
files in the sub Go modules (fuzz and integration).
  • Loading branch information
koenbollen authored Apr 26, 2024
1 parent aae2ae5 commit debe1f2
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 4 deletions.
94 changes: 94 additions & 0 deletions .github/workflows/golang.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Go

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: ${{github.workflow}}-${{ github.ref }}
cancel-in-progress: true

jobs:
unit-tests:
name: unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22.2'
cache-dependency-path: "**/*.sum"
- uses: actions/checkout@v4
- run: go mod verify
- run: go test ./...

fuzz-tests:
name: fuzz tests
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22.2'
cache-dependency-path: "**/*.sum"
- uses: actions/checkout@v4
- run: go mod verify
- run: go mod download
- run: cd fuzz && go test ./...

integration-tests:
name: integration tests
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22.2'
cache-dependency-path: "**/*.sum"
- uses: actions/checkout@v4
- run: go mod verify
- run: go mod download
- run: cd integration && go test ./...

go-vet:
name: go vet
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
checks: write
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22.2'
cache-dependency-path: "**/*.sum"
- uses: actions/checkout@v4
- run: go vet ./...
- run: cd fuzz && go vet ./...
- run: cd integration && go vet ./...

golangci-lint:
name: golangci-lint
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
checks: write
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22.2'
cache-dependency-path: "**/*.sum"
- uses: actions/checkout@v4
- uses: golangci/golangci-lint-action@v5
with:
version: 'v1.57.2'
- uses: golangci/golangci-lint-action@v5
with:
working-directory: 'fuzz'
version: 'v1.57.2'
- uses: golangci/golangci-lint-action@v5
with:
working-directory: 'integration'
version: 'v1.57.2'
2 changes: 1 addition & 1 deletion examples/readme_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"github.com/poki/mongodb-filter-to-postgres/filter"
)

func ExampleNewConverter_README() {
func ExampleNewConverter_readme() {
// Remeber to use `filter.WithArrayDriver(pg.Array)` when using github.com/lib/pq
converter := filter.NewConverter(filter.WithNestedJSONB("meta", "created_at", "updated_at"))

Expand Down
2 changes: 1 addition & 1 deletion fuzz/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/poki/mongodb-filter-to-postgres/fuzz

go 1.21.0
go 1.22.2

replace github.com/poki/mongodb-filter-to-postgres v0.0.0 => ../

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module github.com/poki/mongodb-filter-to-postgres

go 1.21.0
go 1.22.2
2 changes: 1 addition & 1 deletion integration/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/poki/mongodb-filter-to-postgres/fuzz

go 1.21.0
go 1.22.2

replace github.com/poki/mongodb-filter-to-postgres v0.0.0 => ../

Expand Down

0 comments on commit debe1f2

Please sign in to comment.