You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
geoip/Taskfile.yml

129 lines
3.4 KiB
YAML

version: "3"
dotenv: [".env"]
vars:
GIT_TAG:
sh: git tag --points-at HEAD
GIT_COMMIT:
sh: git rev-parse --short HEAD
GIT_DIRTY:
sh: git status -s
VERSION:
sh: if test "{{.GIT_DIRTY}}" != ""; then echo "{{.GIT_COMMIT}}-dirty"; elif test "{{.GIT_TAG}}" != ""; then echo "{{.GIT_TAG}}"; else echo "{{.GIT_COMMIT}}"; fi
PWD:
sh: echo $PWD
tasks:
default:
cmds:
- task: version
- task: volume
- task: podman
version:
desc: Print the version optained from git
cmds:
- echo "{{.VERSION}}"
volume:
run: "once"
cmds:
- podman volume inspect jo_micro-geoip_go 1>/dev/null 2>&1 || podman volume create jo_micro-geoip_go
- podman volume inspect jo_micro-geoip_cache 1>/dev/null 2>&1 || podman volume create jo_micro-geoip_cache
builder:
desc: Run something in the builder container for example "task builder -- go get -u ./..."
cmds:
- podman run --rm
-v "{{.BUILD_MOUNT_FOLDER_INT}}:{{.BUILD_MOUNT_FOLDER_INT}}"
-v "{{.PWD}}:/code"
-v "{{.GO_VOLUME_PATH}}:/go:rw"
-v "{{.CACHE_VOLUME_PATH}}:/root/.cache:rw"
{{.DOCKER_ORG_JO_MICRO}}/builder:latest {{.CLI_ARGS}}
vars:
GO_VOLUME_PATH:
sh: podman volume inspect jo_micro-geoip_go --format "{{"{{"}}.Mountpoint{{"}}"}}"
CACHE_VOLUME_PATH:
sh: podman volume inspect jo_micro-geoip_cache --format "{{"{{"}}.Mountpoint{{"}}"}}"
BUILD_MOUNT_FOLDER_INT:
sh: realpath {{.BUILD_MOUNT_FOLDER}}
preconditions:
- test -n "{{.CLI_ARGS}}"
protoc:
run: "once"
desc: Generate protobruf go files
sources:
- ./**/*.proto
cmds:
- task: builder
vars:
CLI_ARGS: /scripts/protoc_gen.sh
build:podman:
sources:
- ./go.sum
- ./go.work.sum
- ./cmd/microgeoipd/**/*.go
- ./internal/**/*.go
- /*.go
deps:
- protoc
cmds:
- podman build
-v "{{.BUILD_MOUNT_FOLDER_INT}}:{{.BUILD_MOUNT_FOLDER_INT}}"
-v "{{.VOLUME_PATH}}:/go:rw"
--build-arg CACHEBUST={{.DATE}}
--build-arg VERSION={{.VERSION}}
--build-arg=DOCKER_IO={{.DOCKER_IO}}
--build-arg=DOCKER_ORG_JO_MICRO={{.DOCKER_ORG_JO_MICRO}}
-t {{.DOCKER_ORG_JO_MICRO}}/geoip:latest
-f ./docker/geoip/Dockerfile
.
vars:
DATE:
sh: date -u -Iseconds
VOLUME_PATH:
sh: podman volume inspect jo_micro-geoip_go --format "{{"{{"}}.Mountpoint{{"}}"}}"
BUILD_MOUNT_FOLDER_INT:
sh: realpath {{.BUILD_MOUNT_FOLDER}}
podman:
desc: Generate docker container for jo-micro/geoip tagged as {{.DOCKER_ORG_JO_MICRO}}/geoip:latest
cmds:
- task: build:podman
tidy:
desc: Run "go mod tidy" in a container
cmds:
- task: builder
vars:
CLI_ARGS: go mod tidy
check:
desc: Lint in a container
cmds:
- task: builder
vars:
CLI_ARGS: trunk check --ci --sample 10
update:
desc: Run "go get -u ./..." in a container
cmds:
- task: builder
vars:
CLI_ARGS: /scripts/upgrade_deps.sh
rm:
desc: Remove all persistent data
cmds:
- podman image rm {{.DOCKER_ORG_JO_MICRO}}/geoip:latest || exit 0
- podman volume rm jo_micro-geoip_go || exit 0
- podman volume rm jo_micro-geoip_cache || exit 0
- rm -rf $PWD/.task
ci-check:
cmds:
- trunk check --ci