Files
query-orchestration/scripts/Taskfile.yml
T
Jay Brown 2b43799f56 Merged in feature/admin-api (pull request #191)
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
2025-10-23 22:57:15 +00:00

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 ./...