# Makefile for hauler # set shell SHELL=/bin/bash # set go variables GO_FILES=./... GO_COVERPROFILE=coverage.out GO_VULNCHECKS=vulncheck.out TRIVY_RESULTS=trivy.out # set build variables BIN_DIRECTORY=bin DIST_DIRECTORY=dist # local build of hauler for current platform # references/configuration from .goreleaser.yaml build: goreleaser build --clean --snapshot --timeout 60m --single-target # local build of hauler for all platforms # references/configuration from .goreleaser.yaml build-all: goreleaser build --clean --snapshot --timeout 60m # local release of hauler for all platforms # references/configuration from .goreleaser.yaml release: goreleaser release --clean --snapshot --timeout 60m # install depedencies install: go mod tidy go mod download CGO_ENABLED=0 go install ./cmd/... # format go code fmt: go fmt $(GO_FILES) # vet go code vet: go vet $(GO_FILES) # test go code test: go test $(GO_FILES) -cover -race -covermode=atomic -coverprofile=$(GO_COVERPROFILE) # check for vulnerabilities vulns: govulncheck $(GO_FILES) > $(GO_VULNCHECKS) 2>&1 || true curl -fsSL -o rancher.openvex.json https://media.githubusercontent.com/media/rancher/vexhub/refs/heads/main/reports/rancher.openvex.json || true trivy fs --vex rancher.openvex.json --skip-files rancher.openvex.json . > $(TRIVY_RESULTS) 2>&1 || true rm rancher.openvex.json || true # cleanup artifacts clean: rm -rf $(BIN_DIRECTORY) $(DIST_DIRECTORY) $(GO_COVERPROFILE) $(GO_VULNCHECKS) $(TRIVY_RESULTS)