bsky-feedgen/Taskfile.yml

107 lines
3.8 KiB
YAML

# https://taskfile.dev
version: "3"
vars:
DOCKER_REGISTRY: "git.aykhans.me/bsky/"
tasks:
ftl:
cmds:
- task: fmt
- task: tidy
- task: lint
fmt: gofmt -w -d .
tidy: go mod tidy
lint: golangci-lint run
run-consumer:
cmd: go run ./cmd/consumer {{.CLI_ARGS}}
dotenv:
- config/app/consumer.env
- config/app/mongodb.env
run-feedgen-az:
cmd: go run ./cmd/feedgen/az {{.CLI_ARGS}}
dotenv:
- config/app/feedgen/az.env
- config/app/mongodb.env
run-api:
cmd: go run ./cmd/api {{.CLI_ARGS}}
dotenv:
- config/app/api.env
- config/app/mongodb.env
run-manager:
cmd: go run cmd/manager/main.go {{.CLI_ARGS}}
docker-publish-all:
desc: Publish docker images for all services
cmds:
- task: docker-publish-api
- task: docker-publish-consumer
- task: docker-publish-feedgen-az
- task: docker-publish-manager
docker-publish-api:
desc: Publish docker image for api service
vars:
GO_VERSION_FILE: ./cmd/api/version.go
IMAGE_NAME: feedgen-api
VERSION:
sh: grep -o 'const version = "[^"]*"' {{.GO_VERSION_FILE}} | grep -o '"[^"]*"' | tr -d '"'
VERSIONED_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:{{.VERSION}}"
LATEST_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:latest"
preconditions:
- test -f {{.GO_VERSION_FILE}}
- sh: '[ -n "{{.VERSION}}" ]'
msg: "Could not extract version from {{.GO_FILE}}"
cmds:
- docker build -t {{.VERSIONED_IMAGE}} -f ./cmd/api/Dockerfile .
- docker tag {{.VERSIONED_IMAGE}} {{.LATEST_IMAGE}}
- docker push {{.VERSIONED_IMAGE}}
- docker push {{.LATEST_IMAGE}}
- echo "Published {{.VERSIONED_IMAGE}} and {{.LATEST_IMAGE}}"
docker-publish-consumer:
desc: Publish docker image for consumer service
vars:
GO_VERSION_FILE: ./cmd/consumer/version.go
IMAGE_NAME: feedgen-consumer
VERSION:
sh: grep -o 'const version = "[^"]*"' {{.GO_VERSION_FILE}} | grep -o '"[^"]*"' | tr -d '"'
VERSIONED_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:{{.VERSION}}"
LATEST_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:latest"
cmds:
- docker build -t {{.VERSIONED_IMAGE}} -f ./cmd/consumer/Dockerfile .
- docker push {{.VERSIONED_IMAGE}}
- docker tag {{.VERSIONED_IMAGE}} {{.LATEST_IMAGE}}
- docker push {{.LATEST_IMAGE}}
- echo "Published {{.VERSIONED_IMAGE}} and {{.LATEST_IMAGE}}"
docker-publish-feedgen-az:
desc: Publish docker image for feedgen-az service
vars:
GO_VERSION_FILE: ./cmd/feedgen/az/version.go
IMAGE_NAME: feedgen-generator-az
VERSION:
sh: grep -o 'const version = "[^"]*"' {{.GO_VERSION_FILE}} | grep -o '"[^"]*"' | tr -d '"'
VERSIONED_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:{{.VERSION}}"
LATEST_IMAGE: "{{.DOCKER_REGISTRY}}{{.IMAGE_NAME}}:latest"
cmds:
- docker build -t {{.VERSIONED_IMAGE}} -f ./cmd/feedgen/az/Dockerfile .
- docker push {{.VERSIONED_IMAGE}}
- docker tag {{.VERSIONED_IMAGE}} {{.LATEST_IMAGE}}
- docker push {{.LATEST_IMAGE}}
- echo "Published {{.VERSIONED_IMAGE}} and {{.LATEST_IMAGE}}"
docker-publish-manager:
desc: Publish docker image for manager service
cmds:
- docker build -t git.aykhans.me/bsky/feedgen-manager:latest -f ./cmd/manager/Dockerfile .
- docker push git.aykhans.me/bsky/feedgen-manager:latest