2b43799f56
admin api and associated tools * in progress admin api started and permit.io setup tool started * docs * build fix * integration tests passing * new permit variables * fix permit * fix delete regex * fix delete response * docs * docs
133 lines
3.8 KiB
YAML
133 lines
3.8 KiB
YAML
---
|
|
# https://taskfile.dev
|
|
|
|
version: "3"
|
|
|
|
vars:
|
|
OUT_DIR: out
|
|
|
|
includes:
|
|
test:
|
|
dir: ".."
|
|
taskfile: tests.yml
|
|
docker:
|
|
dir: ".."
|
|
taskfile: docker.yml
|
|
openapi:
|
|
dir: ".."
|
|
taskfile: openapi-scripts.yml
|
|
compose:
|
|
dir: ".."
|
|
taskfile: local-deployments.yml
|
|
db:
|
|
dir: ".."
|
|
taskfile: database.yml
|
|
|
|
tasks:
|
|
fullsuite:
|
|
vars:
|
|
INCREMENTAL: "{{.INCREMENTAL | default \"true\"}}"
|
|
cmds:
|
|
- task: build:deps
|
|
- task: fullsuite:build
|
|
- task: test:functional
|
|
vars:
|
|
INCREMENTAL: "{{.INCREMENTAL}}"
|
|
fullsuite:ci:
|
|
- task: fullsuite
|
|
vars:
|
|
INCREMENTAL: "false"
|
|
fullsuite:build:
|
|
internal: true
|
|
cmds:
|
|
- task: build
|
|
- task: lint
|
|
fullsuite:graph: psrecord "task fullsuite" --plot out/fullsuite.png --interval 0.1 --include-children
|
|
precommit:
|
|
- task: lint
|
|
deps:tidy:
|
|
- go mod tidy
|
|
- go mod vendor
|
|
build:
|
|
deps:
|
|
- build:deps
|
|
cmd:
|
|
task: docker:build
|
|
build:deps:
|
|
internal: true
|
|
run: once
|
|
cmds:
|
|
- task: deps:tidy
|
|
- task: generate
|
|
generate:
|
|
run: once
|
|
cmds:
|
|
- task: db:generate
|
|
- task: openapi:generate
|
|
- task: test:mocks:generate
|
|
- task: docs:generate
|
|
- task: go:generate
|
|
go:generate: go generate ./...
|
|
lint:
|
|
cmds:
|
|
- task: db:lint
|
|
- task: go:lint
|
|
- task: yaml:lint
|
|
- task: json:lint
|
|
- task: docker:lint
|
|
- task: openapi:lint
|
|
- task: compose:lint
|
|
go:lint:
|
|
- golangci-lint run {{.CLI_ARGS}}
|
|
# - govulncheck ./...
|
|
yaml:lint: yamllint . -s {{.CLI_ARGS}}
|
|
json:lint: jsonlint devbox.json -q -s -i {{.CLI_ARGS}}
|
|
docs:generate:
|
|
run: once
|
|
cmds:
|
|
- gomarkdoc --template-file file=docs/templates/root.gotxt ./cmd/...
|
|
docs:ai:generate:
|
|
desc: "Generate full system docs ($$)"
|
|
cmds:
|
|
- bash docs/ai.generated/prompts/regenerate_docs.sh docs/ai.generated/prompts/prompt.for.system.documentation.generation.md
|
|
aws:login: aws sso login
|
|
aws:textract:credentials:
|
|
- |
|
|
sed -i '/^AWS_REGION_TEXTRACT\|^AWS_ACCESS_KEY_ID_TEXTRACT\|^AWS_SECRET_ACCESS_KEY_TEXTRACT\|^AWS_SESSION_TOKEN_TEXTRACT/d' .env
|
|
echo "AWS_REGION_TEXTRACT=$(aws configure get region --profile $AWS_PROFILE)" >> .env
|
|
CREDENTIALS_JSON=$(aws configure export-credentials --profile $AWS_PROFILE)
|
|
echo "AWS_ACCESS_KEY_ID_TEXTRACT=$(echo $CREDENTIALS_JSON | jq -r '.AccessKeyId')" >> .env
|
|
echo "AWS_SECRET_ACCESS_KEY_TEXTRACT=$(echo $CREDENTIALS_JSON | jq -r '.SecretAccessKey')" >> .env
|
|
echo "AWS_SESSION_TOKEN_TEXTRACT=$(echo $CREDENTIALS_JSON | jq -r '.SessionToken')" >> .env
|
|
dev:queryAPI:
|
|
desc: "Run queryAPI locally with version info"
|
|
vars:
|
|
BUILD_TIME:
|
|
sh: date -u +"%Y-%m-%dT%H:%M:%SZ"
|
|
GIT_SHORT_COMMIT:
|
|
sh: git rev-parse --short HEAD
|
|
GIT_VERSION:
|
|
sh: echo "$(date -u +"%Y%m%d.%H%M%S")-$(git rev-parse --short HEAD)"
|
|
GIT_COMMIT:
|
|
sh: git rev-parse HEAD
|
|
cmds:
|
|
- echo "Starting queryAPI with version={{.GIT_VERSION}} buildTime={{.BUILD_TIME}} commit={{.GIT_COMMIT}}"
|
|
- |
|
|
go run -ldflags "\
|
|
-X queryorchestration/internal/serviceconfig/build.version={{.GIT_VERSION}} \
|
|
-X queryorchestration/internal/serviceconfig/build.buildTime={{.BUILD_TIME}} \
|
|
-X queryorchestration/internal/serviceconfig/build.gitCommit={{.GIT_COMMIT}}" \
|
|
cmd/queryAPI/main.go
|
|
integration:admin:
|
|
desc: "Run admin user management integration tests (requires real AWS/Permit.io credentials)"
|
|
dir: ../test/integration
|
|
cmds:
|
|
- |
|
|
if [ ! -f .env ]; then
|
|
echo "❌ Error: test/integration/.env not found"
|
|
echo "Copy .env.example to .env and configure your credentials"
|
|
echo "See test/integration/README.md for setup instructions"
|
|
exit 1
|
|
fi
|
|
- go test -tags=integration -v ./...
|