Files
zeitkort-web-golang/Taskfile.yml
T

56 lines
1.6 KiB
YAML

version: '3'
vars:
REMOTE_MACHINE: bl@flo-homeserver
BINARY_DIR: ./bin
DEV_BINARY_DIR: ./local
BINARY: "{{.BINARY_DIR}}/zeitkort-web-poc"
DEV_BINARY: "{{.DEV_BINARY_DIR}}/"
tasks:
build:
desc: runs vet, fmt, and build
deps: [vet, fmt]
cmds:
- rm -rf {{.BINARY_DIR}}/*
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o {{.BINARY}} .
dev-build:
desc: runs vet, fmt, and builds dev binary
deps: [vet, fmt]
cmds:
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o {{.DEV_BINARY}}/zeitkort-web-poc .
deploy:
desc: build, stage binary, and deploy to remote server (preserves config.json)
deps: [build]
cmds:
- ssh {{.REMOTE_MACHINE}} "mkdir -p /tmp/zeitkort-web-poc-deploy"
- rsync -avz --delete {{.BINARY}} {{.REMOTE_MACHINE}}:/tmp/zeitkort-web-poc-deploy/
- ssh -t {{.REMOTE_MACHINE}} "sudo mkdir -p /opt/zeitkort-web-poc && sudo rsync -a /tmp/zeitkort-web-poc-deploy/zeitkort-web-poc /opt/zeitkort-web-poc/zeitkort-web-poc && sudo chown zeitkort-web-poc:zeitkort-web-poc /opt/zeitkort-web-poc/zeitkort-web-poc && sudo systemctl restart zeitkort-web-poc"
- ssh {{.REMOTE_MACHINE}} "rm -rf /tmp/zeitkort-web-poc-deploy"
dev-start:
desc: build dev binary, copy assets, and start locally
dir: "{{ .DEV_BINARY }}"
cmds:
- "rm -rf *"
- go tool task dev-build
- "cp ../config.json ."
- "./zeitkort-web-poc -config config.json"
vet:
cmds:
- go vet ./...
fmt:
cmds:
- go fmt ./...
clean:
cmds:
- rm -f {{.BINARY}}