Merged in feature/testingopts (pull request #129)
Testing Options and Clean Up * bitsandbobs * lint * healthchecks * imgintests * singlegenerate * testclean * network * networkclean * cmds
This commit is contained in:
+9
-38
@@ -18,7 +18,7 @@ includes:
|
||||
dir: "{{.CONTEXT}}"
|
||||
taskfile: openapi-scripts.yml
|
||||
compose:
|
||||
dir: "{{.CONTEXT}}"
|
||||
dir: "."
|
||||
taskfile: local-deployments.yml
|
||||
db:
|
||||
dir: "{{.CONTEXT}}"
|
||||
@@ -27,42 +27,27 @@ includes:
|
||||
tasks:
|
||||
fullsuite:
|
||||
- task: build:deps
|
||||
- task: fullsuite:build
|
||||
- task: test:all
|
||||
fullsuite:build:
|
||||
- task: fullsuite:test
|
||||
fullsuite:test:
|
||||
internal: true
|
||||
deps:
|
||||
- task: build:cmd
|
||||
- task: lint:cmd
|
||||
- task: test:functional
|
||||
- task: lint
|
||||
precommit:
|
||||
- task: lint:short
|
||||
- task: lint
|
||||
deps:tidy:
|
||||
- go mod tidy
|
||||
- go mod vendor
|
||||
- go mod verify
|
||||
build:
|
||||
deps:
|
||||
- build:deps
|
||||
cmd:
|
||||
task: build:cmd
|
||||
task: docker:build
|
||||
build:deps:
|
||||
internal: true
|
||||
cmds:
|
||||
- task: deps:tidy
|
||||
- task: generate:clean
|
||||
build:cmd:
|
||||
internal: true
|
||||
cmds:
|
||||
- task: docker:build
|
||||
generate:clean:
|
||||
run: once
|
||||
deps:
|
||||
- db:generate:clean
|
||||
- openapi:generate
|
||||
- test:mocks:generate
|
||||
- docs:generate
|
||||
cmds:
|
||||
- task: go:generate
|
||||
- task: generate
|
||||
generate:
|
||||
run: once
|
||||
deps:
|
||||
@@ -75,27 +60,13 @@ tasks:
|
||||
go:generate: go generate ./...
|
||||
lint:
|
||||
deps:
|
||||
- generate:clean
|
||||
cmds:
|
||||
- task: lint:cmd
|
||||
lint:cmd:
|
||||
internal: true
|
||||
deps:
|
||||
- task: db:lint
|
||||
- task: go:lint
|
||||
- task: yaml:lint
|
||||
- task: json:lint
|
||||
- task: docker:lint
|
||||
- task: openapi:lint
|
||||
- task: db:lint
|
||||
- task: compose:lint
|
||||
lint:short:
|
||||
deps:
|
||||
- go:lint
|
||||
- yaml:lint
|
||||
- json:lint
|
||||
- docker:lint
|
||||
- openapi:lint
|
||||
- compose:lint:short
|
||||
go:lint: golangci-lint run --fix {{.CLI_ARGS}}
|
||||
yaml:lint: yamllint . -s {{.CLI_ARGS}}
|
||||
json:lint: jsonlint devbox.json -q -s -i {{.CLI_ARGS}}
|
||||
|
||||
+9
-11
@@ -6,20 +6,22 @@ version: "3"
|
||||
vars:
|
||||
MIGRATIONS: "internal/database/migrations"
|
||||
|
||||
includes:
|
||||
compose:
|
||||
dir: "{{.CONTEXT}}"
|
||||
taskfile: local-deployments.yml
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
generate:
|
||||
run: once
|
||||
deps:
|
||||
- mig
|
||||
cmds:
|
||||
- task: compose:up:generate
|
||||
- migrate -path {{.MIGRATIONS}} -database {{.DB_URI_GENERATE}} up
|
||||
- sqlc generate --file sqlc.yml
|
||||
generate:clean:
|
||||
cmds:
|
||||
- task compose:clean:generate
|
||||
- task: generate
|
||||
lint:
|
||||
cmds:
|
||||
- task compose:up:generate
|
||||
- task: compose:up:generate
|
||||
- sqlc vet --file sqlc.yml
|
||||
- |
|
||||
exit 0
|
||||
@@ -34,7 +36,3 @@ tasks:
|
||||
read -p "Migration Name: " name
|
||||
test -z "$name" && echo "Error: Name is required." && exit 1
|
||||
migrate create -ext sql -dir {{.MIGRATIONS}} $name
|
||||
mig:
|
||||
cmds:
|
||||
- task compose:up:generate
|
||||
- migrate -path {{.MIGRATIONS}} -database {{.DB_URI_GENERATE}} up
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
version: "3"
|
||||
|
||||
vars:
|
||||
LOCAL_COMPOSE_FILE: "deployments/compose.local.yaml"
|
||||
TEST_COMPOSE_FILE: "deployments/compose.test.yaml"
|
||||
GENERATE_COMPOSE_FILE: "deployments/compose.generate.yaml"
|
||||
AWS_COMPOSE_FILE: "deployments/compose.aws.yaml"
|
||||
LOCAL_COMPOSE_FILE: "{{.CONTEXT}}/deployments/compose.local.yaml"
|
||||
TEST_COMPOSE_FILE: "{{.CONTEXT}}/deployments/compose.test.yaml"
|
||||
GENERATE_COMPOSE_FILE: "{{.CONTEXT}}/deployments/compose.generate.yaml"
|
||||
AWS_COMPOSE_FILE: "{{.CONTEXT}}/deployments/compose.aws.yaml"
|
||||
|
||||
tasks:
|
||||
build:test:
|
||||
@@ -38,10 +38,9 @@ tasks:
|
||||
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
||||
up:generate:
|
||||
run: once
|
||||
cmds:
|
||||
- task: up:cmd
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.GENERATE_COMPOSE_FILE}}"
|
||||
cmd: |
|
||||
docker compose -f {{.GENERATE_COMPOSE_FILE}} up \
|
||||
--force-recreate --renew-anon-volumes --wait -d
|
||||
up:aws:
|
||||
cmds:
|
||||
- task deps:tidy
|
||||
@@ -67,6 +66,7 @@ tasks:
|
||||
- task: up:cmd
|
||||
- task: init
|
||||
init:
|
||||
internal: true
|
||||
cmds:
|
||||
- aws s3 mb s3://$BUCKET_IN
|
||||
- aws sqs create-queue --queue-name $QNAME_STORE_EVENT
|
||||
@@ -93,11 +93,6 @@ tasks:
|
||||
- task: down
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
||||
down:generate:
|
||||
cmds:
|
||||
- task: down
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.GENERATE_COMPOSE_FILE}}"
|
||||
down:aws:
|
||||
cmds:
|
||||
- task: down
|
||||
@@ -108,37 +103,39 @@ tasks:
|
||||
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
||||
cmds:
|
||||
- docker compose -f {{.COMPOSE_FILE}} down
|
||||
clean:
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
||||
cmds:
|
||||
- docker compose -f {{.COMPOSE_FILE}} down -v
|
||||
clean:test:
|
||||
cmds:
|
||||
- task: down:test
|
||||
- docker volume rm -f deployments_test-db-data
|
||||
clean:generate:
|
||||
run: once
|
||||
cmds:
|
||||
- task: down:generate
|
||||
- docker volume rm -f deployments_generate-db-data
|
||||
- task: clean
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
||||
clean:aws:
|
||||
run: once
|
||||
cmds:
|
||||
- task: down:aws
|
||||
- docker volume rm -f deployments_aws-db-data
|
||||
clean:
|
||||
- task: clean
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.AWS_COMPOSE_FILE}}"
|
||||
lint:cmd:
|
||||
internal: true
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
||||
cmds:
|
||||
- task: down
|
||||
- docker volume rm -f deployments_db-data
|
||||
- docker compose -f {{.COMPOSE_FILE}} config -q
|
||||
lint:
|
||||
cmds:
|
||||
- docker compose -f {{.LOCAL_COMPOSE_FILE}} config -q
|
||||
- |
|
||||
docker compose -f {{.TEST_COMPOSE_FILE}} config -q \
|
||||
--resolve-image-digests
|
||||
- |
|
||||
docker compose -f {{.GENERATE_COMPOSE_FILE}} config -q \
|
||||
--resolve-image-digests
|
||||
- docker compose -f {{.AWS_COMPOSE_FILE}} config -q
|
||||
lint:short:
|
||||
cmds:
|
||||
- docker compose -f {{.LOCAL_COMPOSE_FILE}} config -q
|
||||
- docker compose -f {{.TEST_COMPOSE_FILE}} config -q
|
||||
- docker compose -f {{.GENERATE_COMPOSE_FILE}} config -q
|
||||
- docker compose -f {{.AWS_COMPOSE_FILE}} config -q
|
||||
deps:
|
||||
- task: lint:cmd
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.AWS_COMPOSE_FILE}}"
|
||||
- task: lint:cmd
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.LOCAL_COMPOSE_FILE}}"
|
||||
- task: lint:cmd
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.GENERATE_COMPOSE_FILE}}"
|
||||
- task: lint:cmd
|
||||
vars:
|
||||
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
||||
|
||||
+17
-53
@@ -10,62 +10,42 @@ vars:
|
||||
API: "./api/..."
|
||||
PKG: "./pkg/..."
|
||||
CMD: "./cmd/..."
|
||||
UNIT_PARALLEL: 32
|
||||
E2E_PARALLEL: 1
|
||||
TEST_PARALLEL: 32
|
||||
# yamllint disable-line rule:line-length
|
||||
EXCLUDED_FILES: ".gen.go|internal/serviceconfig/observability/prometheus/generator/main.go|internal/cognitoauth/middleware.go|internal/cognitoauth/token.go|internal/cognitoauth/auth.go|internal/cognitoauth/handler.go|internal/cognitoauth/models.go|api/queryAPI/authHandlers.go|api/queryAPI/homehandler.go"
|
||||
|
||||
includes:
|
||||
docker:
|
||||
dir: "{{.CONTEXT}}"
|
||||
taskfile: docker.yml
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
mocks:generate:
|
||||
run: once
|
||||
cmds:
|
||||
- rm -rf mocks/*
|
||||
- go tool mockery
|
||||
unit:cmd:
|
||||
internal: true
|
||||
vars:
|
||||
SKIP_GENERATE: false
|
||||
functional:
|
||||
cmds:
|
||||
- task: mocks:generate
|
||||
- mkdir -p {{.OUT_DIR}}
|
||||
- |
|
||||
go test -parallel {{.UNIT_PARALLEL}} \
|
||||
{{.INTERNAL}} {{.API}} {{.CLI_ARGS}}
|
||||
unit:short:
|
||||
cmds:
|
||||
- task: unit:cmd
|
||||
vars:
|
||||
CLI_ARGS: -short
|
||||
SKIP_GENERATE: true
|
||||
unit:aws:
|
||||
cmds:
|
||||
- |
|
||||
find ./internal -name "*.aws_test.go" -exec dirname {} \; | sort -u \
|
||||
| xargs go test -short -tags aws
|
||||
unit:
|
||||
go test -count=1 -parallel {{.TEST_PARALLEL}} \
|
||||
-coverpkg={{.INTERNAL}},{{.API}},{{.PKG}} \
|
||||
-coverprofile={{.COVERAGE_FILE}} \
|
||||
./...
|
||||
- task: coverage
|
||||
bench:
|
||||
vars:
|
||||
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
|
||||
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
|
||||
cmds:
|
||||
- task: unit:cmd
|
||||
vars:
|
||||
CLI_ARGS: |
|
||||
-coverpkg={{.INTERNAL}},{{.API}} \
|
||||
-coverprofile={{.COVERAGE_FILE}}
|
||||
- task: coverage
|
||||
silent: true
|
||||
endtoend:
|
||||
- go test -run ^Benchmark -bench=. ./... > {{.BENCH_FILE}}
|
||||
- benchstat {{.BENCH_FILE}}
|
||||
unit:short:
|
||||
deps:
|
||||
- docker:build
|
||||
- mocks:generate
|
||||
cmds:
|
||||
- go test -count=1 -parallel {{.E2E_PARALLEL}} ./test/...
|
||||
- mkdir -p {{.OUT_DIR}}
|
||||
- |
|
||||
go test -parallel {{.TEST_PARALLEL}} -short \
|
||||
{{.INTERNAL}} {{.API}} {{.CLI_ARGS}}
|
||||
coverage:
|
||||
internal: true
|
||||
vars:
|
||||
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
|
||||
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
|
||||
@@ -107,19 +87,3 @@ tasks:
|
||||
fi
|
||||
|
||||
echo "✅ All coverage checks passed!"
|
||||
all:
|
||||
cmds:
|
||||
- mkdir -p {{.OUT_DIR}}
|
||||
- |
|
||||
go test -count=1 -parallel {{.UNIT_PARALLEL}} \
|
||||
-coverpkg={{.INTERNAL}},{{.API}},{{.PKG}} \
|
||||
-coverprofile={{.COVERAGE_FILE}} \
|
||||
./...
|
||||
- task: coverage
|
||||
bench:
|
||||
vars:
|
||||
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
|
||||
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
|
||||
cmds:
|
||||
- go test -run ^Benchmark -bench=. ./... > {{.BENCH_FILE}}
|
||||
- benchstat {{.BENCH_FILE}}
|
||||
|
||||
Reference in New Issue
Block a user