81 lines
2.3 KiB
YAML
81 lines
2.3 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
SERVER: bl@flo-homeserver
|
|
PKG: main
|
|
BINARY_DIR: ./bin
|
|
DEV_BINARY_DIR: ./local
|
|
BINARY_API: "{{.BINARY_DIR}}/abuse-registration-api"
|
|
DEV_BINARY_API: "{{.DEV_BINARY_DIR}}/abuse-registration-api/"
|
|
|
|
tasks:
|
|
|
|
# ── Build ──────────────────────────────────────────────────────────────────
|
|
|
|
build:
|
|
desc: runs vet, fmt, and build api
|
|
deps: [vet, fmt, build-api]
|
|
|
|
build-api:
|
|
desc: clean, then build api bin
|
|
cmds:
|
|
- go tool task clean-api
|
|
- mkdir -p {{.BINARY_DIR}}
|
|
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o {{.BINARY_API}} ./cmd/api
|
|
|
|
deploy:
|
|
desc: build api, stage files, and deploy api to remote server
|
|
deps: [build]
|
|
cmds:
|
|
- ssh {{.SERVER}} "rm -rf /tmp/abuse-registration-api-deploy && mkdir -p /tmp/abuse-registration-api-deploy"
|
|
- rsync -avz --delete {{.BINARY_API}} {{.SERVER}}:/tmp/abuse-registration-api-deploy/
|
|
- ssh -t {{.SERVER}} "sudo rsync -a --delete --exclude='.env' --exclude='config.json' --exclude='data/' --chown=abuse-registration-api:abuse-registration-api /tmp/abuse-registration-api-deploy/ /opt/abuse-registration-api/ && sudo systemctl restart abuse-registration-api"
|
|
- ssh {{.SERVER}} "rm -rf /tmp/abuse-registration-api-deploy"
|
|
|
|
dev-build:
|
|
desc: runs DEV for vet, fmt, and build DEV api
|
|
deps: [vet, fmt, dev-build-api]
|
|
|
|
dev-build-api:
|
|
desc: clean, then build DEV api bin
|
|
cmds:
|
|
- go tool task dev-clean-api
|
|
- mkdir -p {{.DEV_BINARY_API}}
|
|
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o {{.DEV_BINARY_API}}/abuse-registration-api ./cmd/api
|
|
|
|
dev-start-api:
|
|
desc: build api, create dirs, and start DEV api binary
|
|
dir: "{{ .DEV_BINARY_API }}"
|
|
cmds:
|
|
- "rm -rf *"
|
|
- go tool task dev-build-api
|
|
- "./abuse-registration-api"
|
|
|
|
run:
|
|
desc: run the POC API locally on :8080 by default
|
|
cmds:
|
|
- go run ./cmd/api
|
|
|
|
vet:
|
|
cmds:
|
|
- go vet ./...
|
|
|
|
fmt:
|
|
cmds:
|
|
- go fmt ./...
|
|
|
|
test:
|
|
cmds:
|
|
- go test ./...
|
|
|
|
clean:
|
|
deps: [clean-api]
|
|
|
|
clean-api:
|
|
cmds:
|
|
- rm -f {{.BINARY_API}}
|
|
|
|
dev-clean-api:
|
|
cmds:
|
|
- rm -f {{.DEV_BINARY_API}}/abuse-registration-api
|