chore(makefile): Mark all phony targets as PHONY

Some phony targets where not included in the single .PHONY line, this
switches to marking targets as PHONY just before the target is defined,
which makes it easier to ensure the targets are correctly marked as
phony.
pull/1753/head
Timothy Messier 4 years ago
parent 9f7c650101
commit 0bc9e30aa6
No known key found for this signature in database
GPG Key ID: EFD2F184F7600572

@ -12,24 +12,30 @@ CGO_ENABLED?=0
export GEN_BASEPATH := $(shell pwd)
.PHONY: api
api:
$(MAKE) --environment-overrides -C internal/api/genapi api
.PHONY: cli
cli:
$(MAKE) --environment-overrides -C internal/cmd/gencli cli
.PHONY: tools
tools:
go generate -tags tools tools/tools.go
.PHONY: cleangen
cleangen:
@rm -f ${GENERATED_CODE}
.PHONY: dev
dev: BUILD_TAGS+=dev
dev: BUILD_TAGS+=ui
dev: build-ui-ifne
@echo "==> Building Boundary with dev and UI features enabled"
@CGO_ENABLED=$(CGO_ENABLED) BUILD_TAGS='$(BUILD_TAGS)' sh -c "'$(CURDIR)/scripts/build.sh'"
.PHONY: fmt
fmt:
gofumpt -w $$(find . -name '*.go' | grep -v pb.go | grep -v pb.gw.go)
@ -43,6 +49,7 @@ $(UI_TARGETS): export UI_DEFAULT_BRANCH := main
$(UI_TARGETS): export UI_CURRENT_COMMIT := $(shell head -n1 < "$(UI_VERSION_FILE)" | cut -d' ' -f1)
$(UI_TARGETS): export UI_COMMITISH ?=
.PHONY: update-ui-version
update-ui-version:
@if [ -z "$(UI_COMMITISH)" ]; then \
echo "==> Setting UI version to latest commit on branch '$(UI_DEFAULT_BRANCH)'"; \
@ -52,6 +59,7 @@ update-ui-version:
fi; \
./scripts/uiclone.sh && ./scripts/uiupdate.sh
.PHONY: build-ui
build-ui:
@if [ -z "$(UI_COMMITISH)" ]; then \
echo "==> Building default UI version from $(UI_VERSION_FILE): $(UI_CURRENT_COMMIT)"; \
@ -61,6 +69,7 @@ build-ui:
fi; \
./scripts/uiclone.sh && ./scripts/uigen.sh
.PHONY: build-ui-ifne
build-ui-ifne:
ifeq (,$(wildcard internal/ui/.tmp/boundary-ui))
@echo "==> No UI assets found, building..."
@ -69,15 +78,19 @@ else
@echo "==> UI assets found, use build-ui target to update"
endif
.PHONY: perms-table
perms-table:
@go run internal/website/permstable/permstable.go
.PHONY: gen
gen: cleangen proto api cli perms-table fmt
### oplog requires protoc-gen-go v1.20.0 or later
# GO111MODULE=on go get -u github.com/golang/protobuf/protoc-gen-go@v1.40
.PHONY: proto
proto: protolint protobuild
.PHONY: protobuild
protobuild:
# To add a new directory containing a proto pass the proto's root path in
# through the --proto_path flag.
@ -150,37 +163,47 @@ protobuild:
@rm -R ${TMP_DIR}
.PHONY: protolint
protolint:
@buf check lint
@buf check breaking --against 'https://github.com/hashicorp/boundary.git#branch=stable-website'
.PHONY: website
# must have nodejs and npm installed
website: website-install website-start
.PHONY: website-install
website-install:
@npm install --prefix website/
.PHONY: website-start
website-start:
@npm start --prefix website/
.PHONY: test-database-up
test-database-up:
make -C testing/dbtest/docker database-up
.PHONY: test-database-down
test-database-down:
make -C testing/dbtest/docker clean
.PHONY: test-ci
test-ci: install-go
test-ci: export CI_BUILD=1
test-ci:
CGO_ENABLED=$(CGO_ENABLED) BUILD_TAGS='$(BUILD_TAGS)' sh -c "'$(CURDIR)/scripts/build.sh'"
~/.go/bin/go test ./... -v $(TESTARGS) -timeout 120m
.PHONY: test-sql
test-sql:
$(MAKE) -C internal/db/sqltest/ test
.PHONY: test
test:
go test ./... -timeout 30m
.PHONY: install-go
install-go:
./ci/goinstall.sh
@ -192,8 +215,10 @@ IMAGE_TAG=$(REGISTRY_NAME)/$(IMAGE_NAME):$(VERSION)
IMAGE_TAG_DEV=$(REGISTRY_NAME)/$(IMAGE_NAME):latest-$(shell git rev-parse --short HEAD)
DOCKER_DIR=./docker
.PHONY: docker
docker: docker-build docker-publish
.PHONY: docker-build
# builds from releases.hashicorp.com official binary
docker-build:
docker build -t $(IMAGE_TAG) \
@ -201,6 +226,7 @@ docker-build:
-f $(DOCKER_DIR)/Release.dockerfile docker/
docker tag $(IMAGE_TAG) hashicorp/boundary:latest
.PHONY: docker-multiarch-build
# builds multiarch from releases.hashicorp.com official binary
docker-multiarch-build:
docker buildx build \
@ -211,6 +237,7 @@ docker-multiarch-build:
--platform linux/amd64,linux/arm64 \
--file $(DOCKER_DIR)/Release.dockerfile docker/
.PHONY: docker-build-dev
# builds from locally generated binary in bin/
docker-build-dev: export XC_OSARCH=linux/amd64
docker-build-dev: dev
@ -218,18 +245,19 @@ docker-build-dev: dev
docker build -t $(IMAGE_TAG_DEV) \
-f $(DOCKER_DIR)/Dev.dockerfile docker/
.PHONY: docker-publish
# requires appropriate permissions in dockerhub
docker-publish:
docker push $(IMAGE_TAG)
docker push hashicorp/boundary:latest
.PHONY: api cli tools gen proto website ci-config ci-verify set-ui-version docker docker-build docker-build-dev docker-publish test-database-up test-database-down
.NOTPARALLEL:
.PHONY: ci-config
ci-config:
@$(MAKE) -C .circleci ci-config
.PHONY: ci-verify
ci-verify:
@$(MAKE) -C .circleci ci-verify

Loading…
Cancel
Save