mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-28 19:28:33 +00:00
117 lines
3.6 KiB
Makefile
117 lines
3.6 KiB
Makefile
BUILD_ID := $(shell git rev-parse --short HEAD 2>/dev/null || echo no-commit-id)
|
|
WORKSPACE := $(shell pwd)
|
|
PKG := $(shell go list ./... | grep -v e2e | grep -v static | grep -v mocks | grep -v testing)
|
|
PKG_COMMAS := $(shell go list ./... | grep -v e2e | grep -v static | grep -v mocks | grep -v testing | tr '\n' ',')
|
|
IMAGE_NAME := runatlantis/atlantis
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
# renovate: datasource=github-releases depName=golangci/golangci-lint
|
|
GOLANGCI_LINT_VERSION := v1.64.4
|
|
|
|
.PHONY: help
|
|
help: ## List targets & descriptions
|
|
@cat Makefile* | grep -E '^[a-zA-Z\/_-]+:.*?## .*$$' | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
|
|
.PHONY: id
|
|
id: ## Output BUILD_ID being used
|
|
@echo $(BUILD_ID)
|
|
|
|
.PHONY: debug
|
|
debug: ## Output internal make variables
|
|
@echo BUILD_ID = $(BUILD_ID)
|
|
@echo IMAGE_NAME = $(IMAGE_NAME)
|
|
@echo WORKSPACE = $(WORKSPACE)
|
|
@echo PKG = $(PKG)
|
|
|
|
.PHONY: build-service
|
|
build-service: ## Build the main Go service
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o atlantis .
|
|
|
|
.PHONY: build
|
|
build: build-service ## Runs make build-service
|
|
|
|
.PHONY: all
|
|
all: build-service ## Runs make build-service
|
|
|
|
.PHONY: clean
|
|
clean: ## Cleans compiled binary
|
|
@rm -f atlantis
|
|
|
|
.PHONY: go-generate
|
|
go-generate: ## Run go generate in all packages
|
|
./scripts/go-generate.sh
|
|
|
|
.PHONY: regen-mocks
|
|
regen-mocks: ## Delete and regenerate all mocks
|
|
find . -type f | grep mocks/mock_ | xargs rm
|
|
find . -type f | grep mocks/matchers | xargs rm
|
|
@# not using $(PKG) here because that includes directories that have now
|
|
@# been made empty, causing go generate to fail.
|
|
./scripts/go-generate.sh
|
|
|
|
.PHONY: test
|
|
test: ## Run tests
|
|
@go test -short $(PKG)
|
|
|
|
.PHONY: docker/test
|
|
docker/test: ## Run tests in docker
|
|
docker run -it -v $(PWD):/atlantis ghcr.io/runatlantis/testing-env:latest sh -c "cd /atlantis && make test"
|
|
|
|
.PHONY: test-all
|
|
test-all: ## Run tests including integration
|
|
@go test $(PKG)
|
|
|
|
.PHONY: docker/test-all
|
|
docker/test-all: ## Run all tests in docker
|
|
docker run -it -v $(PWD):/atlantis ghcr.io/runatlantis/testing-env:latest sh -c "cd /atlantis && make test-all"
|
|
|
|
.PHONY: test-coverage
|
|
test-coverage: ## Show test coverage
|
|
@mkdir -p .cover
|
|
@go test -covermode atomic -coverprofile .cover/cover.out $(PKG)
|
|
|
|
.PHONY: test-coverage-html
|
|
test-coverage-html: ## Show test coverage and output html
|
|
@mkdir -p .cover
|
|
@go test -covermode atomic -coverpkg $(PKG_COMMAS) -coverprofile .cover/cover.out $(PKG)
|
|
go tool cover -html .cover/cover.out
|
|
|
|
.PHONY: docker/dev
|
|
docker/dev: ## Build dev Dockerfile as atlantis-dev
|
|
GOOS=linux GOARCH=amd64 go build -o atlantis .
|
|
docker build -f Dockerfile.dev -t atlantis-dev .
|
|
|
|
.PHONY: release
|
|
release: ## Create packages for a release
|
|
docker run -v $$(pwd):/go/src/github.com/runatlantis/atlantis cimg/go:1.20 sh -c 'cd /go/src/github.com/runatlantis/atlantis && scripts/binary-release.sh'
|
|
|
|
.PHONY: fmt
|
|
fmt: ## Run goimports (which also formats)
|
|
goimports -w $$(find . -type f -name '*.go' ! -path "./vendor/*" ! -path "**/mocks/*")
|
|
|
|
.PHONY: lint
|
|
lint: ## Run linter locally
|
|
golangci-lint run
|
|
|
|
.PHONY: check-lint
|
|
check-lint: ## Run linter in CI/CD. If running locally use 'lint'
|
|
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./bin $(GOLANGCI_LINT_VERSION)
|
|
./bin/golangci-lint run -j 4 --timeout 5m
|
|
|
|
.PHONY: check-fmt
|
|
check-fmt: ## Fail if not formatted
|
|
./scripts/fmt.sh
|
|
|
|
.PHONY: end-to-end-deps
|
|
end-to-end-deps: ## Install e2e dependencies
|
|
./scripts/e2e-deps.sh
|
|
|
|
.PHONY: end-to-end-tests
|
|
end-to-end-tests: ## Run e2e tests
|
|
./scripts/e2e.sh
|
|
|
|
.PHONY: website-dev
|
|
website-dev: ## Run runatlantic.io on localhost:8080
|
|
npm run website:dev
|