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}}