2025-01-10 11:12:03 +00:00
|
|
|
---
|
2024-12-19 11:38:57 +00:00
|
|
|
# https://taskfile.dev
|
|
|
|
|
|
2025-02-28 13:11:53 +00:00
|
|
|
version: "3"
|
2024-12-19 11:38:57 +00:00
|
|
|
|
|
|
|
|
vars:
|
2025-05-05 09:31:21 +00:00
|
|
|
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"
|
2024-12-19 11:38:57 +00:00
|
|
|
|
|
|
|
|
tasks:
|
2025-02-05 22:45:32 +00:00
|
|
|
build:test:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Build containers using compose.test.yaml"
|
2025-02-05 22:45:32 +00:00
|
|
|
cmds:
|
|
|
|
|
- task: build
|
|
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
2025-02-11 16:00:30 +00:00
|
|
|
build:generate:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Build containers using compose.generate.yaml (used by code generation)"
|
2025-02-11 16:00:30 +00:00
|
|
|
cmds:
|
|
|
|
|
- task: build
|
|
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.GENERATE_COMPOSE_FILE}}"
|
2024-12-19 11:38:57 +00:00
|
|
|
build:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Build containers for the local compose stack (default: compose.local.yaml)"
|
2025-02-05 22:45:32 +00:00
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
2024-12-19 11:38:57 +00:00
|
|
|
cmds:
|
2025-01-07 13:06:43 +00:00
|
|
|
- docker compose -f {{.COMPOSE_FILE}} build
|
2025-02-13 00:23:13 +00:00
|
|
|
up:cmd:
|
|
|
|
|
internal: true
|
|
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
2025-02-13 00:23:13 +00:00
|
|
|
cmds:
|
|
|
|
|
- docker compose -f {{.COMPOSE_FILE}} up --no-recreate --wait -d
|
2026-01-14 17:59:04 +00:00
|
|
|
up:infra:
|
|
|
|
|
desc: "Start only infrastructure containers (localstack, db, prometheus)"
|
|
|
|
|
internal: true
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
|
|
|
|
cmds:
|
|
|
|
|
- docker compose -f {{.COMPOSE_FILE}} up localstack db prometheus -d --wait
|
2025-02-05 22:45:32 +00:00
|
|
|
up:test:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Bring up the test compose stack in the background"
|
2025-02-05 22:45:32 +00:00
|
|
|
cmds:
|
2025-02-13 00:23:13 +00:00
|
|
|
- task: up:cmd
|
|
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
2025-02-11 16:00:30 +00:00
|
|
|
up:generate:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Bring up the generate compose stack (postgres used by db:generate)"
|
2025-03-10 11:03:00 +00:00
|
|
|
run: once
|
2025-05-03 01:16:53 +00:00
|
|
|
cmd: |
|
|
|
|
|
docker compose -f {{.GENERATE_COMPOSE_FILE}} up \
|
2025-05-08 16:04:45 +00:00
|
|
|
--wait -d
|
2025-04-22 19:57:35 +00:00
|
|
|
up:aws:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Build and start the local AWS-services compose stack (localstack-backed)"
|
2025-04-22 19:57:35 +00:00
|
|
|
cmds:
|
|
|
|
|
- task deps:tidy
|
|
|
|
|
- task docker:build
|
|
|
|
|
- task: build
|
|
|
|
|
- task: up:cmd
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.AWS_COMPOSE_FILE}}"
|
|
|
|
|
- task: init
|
2025-02-11 16:00:30 +00:00
|
|
|
up:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Tidy deps, build images, and bring up the full local compose stack"
|
2025-02-06 15:00:26 +00:00
|
|
|
cmds:
|
2025-04-22 19:57:35 +00:00
|
|
|
- task deps:tidy
|
2025-02-11 15:22:59 +00:00
|
|
|
- task docker:build
|
|
|
|
|
- task: build
|
2026-01-14 17:59:04 +00:00
|
|
|
- task: up:infra
|
2025-02-11 15:22:59 +00:00
|
|
|
- task: init
|
2026-01-14 17:59:04 +00:00
|
|
|
- task: up:cmd
|
2025-02-11 16:00:30 +00:00
|
|
|
refresh:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Rebuild images and recycle the local stack (down then up:infra + services)"
|
2025-01-10 11:12:03 +00:00
|
|
|
cmds:
|
2025-04-22 19:57:35 +00:00
|
|
|
- task deps:tidy
|
2025-02-06 15:00:26 +00:00
|
|
|
- task docker:build
|
2025-08-05 07:03:35 -07:00
|
|
|
- task docker:build:debug
|
2025-02-11 15:22:59 +00:00
|
|
|
- task: build
|
2025-02-11 16:00:30 +00:00
|
|
|
- task: down
|
2026-01-14 17:59:04 +00:00
|
|
|
- task: up:infra
|
2025-02-05 22:45:32 +00:00
|
|
|
- task: init
|
2026-01-14 17:59:04 +00:00
|
|
|
- task: up:cmd
|
2025-02-05 18:33:06 +00:00
|
|
|
init:
|
2025-05-03 01:16:53 +00:00
|
|
|
internal: true
|
2025-02-05 18:33:06 +00:00
|
|
|
cmds:
|
2025-02-06 15:00:26 +00:00
|
|
|
- aws s3 mb s3://$BUCKET_IN
|
2025-04-02 18:50:03 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_STORE_EVENT
|
2025-02-05 18:33:06 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_INIT
|
2025-02-12 19:00:25 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_SYNC
|
2025-02-07 12:12:51 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_CLEAN
|
2025-06-10 12:57:30 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_TEXT
|
2025-02-07 14:15:06 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_QUERY_SYNC
|
2025-02-07 12:12:51 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_QUERY_RUNNER
|
2025-03-10 11:03:00 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_CLIENT_SYNC
|
2025-02-14 10:56:24 +00:00
|
|
|
- aws sqs create-queue --queue-name $QNAME_QUERY_VERSION_SYNC
|
2025-02-06 15:00:26 +00:00
|
|
|
- |
|
|
|
|
|
aws s3api put-bucket-notification-configuration \
|
|
|
|
|
--bucket $BUCKET_IN \
|
|
|
|
|
--notification-configuration '{
|
|
|
|
|
"QueueConfigurations": [{
|
2025-04-02 18:50:03 +00:00
|
|
|
"QueueArn": "arn:aws:sqs:us-east-1:000000000000:store_event",
|
2025-04-22 19:57:35 +00:00
|
|
|
"Events": ["s3:ObjectCreated:*"]
|
2025-02-06 15:00:26 +00:00
|
|
|
}]
|
|
|
|
|
}'
|
2025-02-05 22:45:32 +00:00
|
|
|
down:test:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop containers from the test compose stack"
|
2025-02-05 22:45:32 +00:00
|
|
|
cmds:
|
|
|
|
|
- task: down
|
|
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
2025-04-22 19:57:35 +00:00
|
|
|
down:aws:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop containers from the AWS-services compose stack"
|
2025-04-22 19:57:35 +00:00
|
|
|
cmds:
|
|
|
|
|
- task: down
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.AWS_COMPOSE_FILE}}"
|
2025-01-10 11:12:03 +00:00
|
|
|
down:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop containers for the local compose stack (run before fullsuite:ci)"
|
2025-02-05 22:45:32 +00:00
|
|
|
vars:
|
2025-02-28 13:11:53 +00:00
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
2025-01-10 11:12:03 +00:00
|
|
|
cmds:
|
|
|
|
|
- docker compose -f {{.COMPOSE_FILE}} down
|
2025-05-03 01:16:53 +00:00
|
|
|
clean:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop and remove containers AND volumes for the local compose stack"
|
2025-05-03 01:16:53 +00:00
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
2025-02-05 22:45:32 +00:00
|
|
|
cmds:
|
2025-05-03 01:16:53 +00:00
|
|
|
- docker compose -f {{.COMPOSE_FILE}} down -v
|
|
|
|
|
clean:test:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop and remove containers AND volumes for the test compose stack"
|
2025-02-11 16:00:30 +00:00
|
|
|
cmds:
|
2025-05-03 01:16:53 +00:00
|
|
|
- task: clean
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.TEST_COMPOSE_FILE}}"
|
2025-04-22 19:57:35 +00:00
|
|
|
clean:aws:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Stop and remove containers AND volumes for the AWS compose stack"
|
2025-04-22 19:57:35 +00:00
|
|
|
run: once
|
|
|
|
|
cmds:
|
2025-05-03 01:16:53 +00:00
|
|
|
- task: clean
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.AWS_COMPOSE_FILE}}"
|
|
|
|
|
lint:cmd:
|
|
|
|
|
internal: true
|
|
|
|
|
vars:
|
|
|
|
|
COMPOSE_FILE: "{{.COMPOSE_FILE | default .LOCAL_COMPOSE_FILE}}"
|
2025-01-22 10:30:57 +00:00
|
|
|
cmds:
|
2025-05-03 01:16:53 +00:00
|
|
|
- docker compose -f {{.COMPOSE_FILE}} config -q
|
2024-12-19 11:38:57 +00:00
|
|
|
lint:
|
2026-05-21 19:40:04 +00:00
|
|
|
desc: "Validate all compose files (local, test, generate, aws) with `compose config`"
|
2025-05-03 01:16:53 +00:00
|
|
|
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}}"
|
2025-08-05 07:03:35 -07:00
|
|
|
rebuild:
|
|
|
|
|
desc: "Force complete rebuild of all containers (use when build cache causes issues)"
|
|
|
|
|
cmds:
|
|
|
|
|
- go clean -cache
|
|
|
|
|
- docker rmi {{.IMAGE_NAME}}:latest {{.IMAGE_NAME}}:debug || true
|
|
|
|
|
- task: refresh
|