chore(make): co-locate .PHONY declaration and target (#1291)

This commit is contained in:
Jan Christoph Ebersbach 2022-12-24 06:09:51 +01:00 committed by GitHub
parent ae2e7e56bf
commit 0d9467a570
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,3 @@
.PHONY: help build/kanidmd build/radiusd test/kanidmd push/kanidmd push/radiusd vendor-prep doc install-tools prep vendor book clean_book test/pykanidm/pytest test/pykanidm/mypy test/pykanidm/pylint docs/pykanidm/build docs/pykanidm/serve release/kanidm release/kanidmd release/kanidm-unixd debs/all debs/kanidm debs/kanidmd debs/kandim-ssh debs/kandim-unixd
IMAGE_BASE ?= kanidm IMAGE_BASE ?= kanidm
IMAGE_VERSION ?= devel IMAGE_VERSION ?= devel
CONTAINER_TOOL_ARGS ?= CONTAINER_TOOL_ARGS ?=
@ -12,9 +10,11 @@ CONTAINER_TOOL ?= docker
BOOK_VERSION ?= master BOOK_VERSION ?= master
.DEFAULT: help .DEFAULT: help
.PHONY: help
help: help:
@grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' @grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
.PHONY: buildx/kanidmd/x86_64_v3
buildx/kanidmd/x86_64_v3: ## build multiarch server images buildx/kanidmd/x86_64_v3: ## build multiarch server images
buildx/kanidmd/x86_64_v3: buildx/kanidmd/x86_64_v3:
@$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) --pull --push --platform "linux/amd64" \ @$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) --pull --push --platform "linux/amd64" \
@ -24,6 +24,7 @@ buildx/kanidmd/x86_64_v3:
$(CONTAINER_BUILD_ARGS) . $(CONTAINER_BUILD_ARGS) .
@$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/server:$(IMAGE_VERSION) @$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/server:$(IMAGE_VERSION)
.PHONY: buildx/kanidmd
buildx/kanidmd: ## Build multiarch kanidm server images and push to docker hub buildx/kanidmd: ## Build multiarch kanidm server images and push to docker hub
buildx/kanidmd: buildx/kanidmd:
@$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \ @$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \
@ -35,6 +36,7 @@ buildx/kanidmd:
$(CONTAINER_BUILD_ARGS) . $(CONTAINER_BUILD_ARGS) .
@$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/server:$(IMAGE_VERSION) @$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/server:$(IMAGE_VERSION)
.PHONY: buildx/kanidm_tools
buildx/kanidm_tools: ## Build multiarch kanidm tool images and push to docker hub buildx/kanidm_tools: ## Build multiarch kanidm tool images and push to docker hub
buildx/kanidm_tools: buildx/kanidm_tools:
@$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \ @$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \
@ -46,6 +48,7 @@ buildx/kanidm_tools:
$(CONTAINER_BUILD_ARGS) . $(CONTAINER_BUILD_ARGS) .
@$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/tools:$(IMAGE_VERSION) @$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/tools:$(IMAGE_VERSION)
.PHONY: buildx/radiusd
buildx/radiusd: ## Build multi-arch radius docker images and push to docker hub buildx/radiusd: ## Build multi-arch radius docker images and push to docker hub
buildx/radiusd: buildx/radiusd:
@$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \ @$(CONTAINER_TOOL) buildx build $(CONTAINER_TOOL_ARGS) \
@ -54,8 +57,10 @@ buildx/radiusd:
-t $(IMAGE_BASE)/radius:$(IMAGE_VERSION) . -t $(IMAGE_BASE)/radius:$(IMAGE_VERSION) .
@$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/radius:$(IMAGE_VERSION) @$(CONTAINER_TOOL) buildx imagetools $(CONTAINER_TOOL_ARGS) inspect $(IMAGE_BASE)/radius:$(IMAGE_VERSION)
.PHONY: buildx
buildx: buildx/kanidmd/x86_64_v3 buildx/kanidmd buildx/kanidm_tools buildx/radiusd buildx: buildx/kanidmd/x86_64_v3 buildx/kanidmd buildx/kanidm_tools buildx/radiusd
.PHONY: build/kanidmd
build/kanidmd: ## Build the kanidmd docker image locally build/kanidmd: ## Build the kanidmd docker image locally
build/kanidmd: build/kanidmd:
@$(CONTAINER_TOOL) build $(CONTAINER_TOOL_ARGS) -f kanidmd/Dockerfile -t $(IMAGE_BASE)/server:$(IMAGE_VERSION) \ @$(CONTAINER_TOOL) build $(CONTAINER_TOOL_ARGS) -f kanidmd/Dockerfile -t $(IMAGE_BASE)/server:$(IMAGE_VERSION) \
@ -63,14 +68,17 @@ build/kanidmd:
--build-arg "KANIDM_FEATURES=" \ --build-arg "KANIDM_FEATURES=" \
$(CONTAINER_BUILD_ARGS) . $(CONTAINER_BUILD_ARGS) .
.PHONY: build/radiusd
build/radiusd: ## Build the radiusd docker image locally build/radiusd: ## Build the radiusd docker image locally
build/radiusd: build/radiusd:
@$(CONTAINER_TOOL) build $(CONTAINER_TOOL_ARGS) \ @$(CONTAINER_TOOL) build $(CONTAINER_TOOL_ARGS) \
-f kanidm_rlm_python/Dockerfile \ -f kanidm_rlm_python/Dockerfile \
-t $(IMAGE_BASE)/radius:$(IMAGE_VERSION) . -t $(IMAGE_BASE)/radius:$(IMAGE_VERSION) .
.PHONY: build
build: build/kanidmd build/radiusd build: build/kanidmd build/radiusd
.PHONY: test/kanidmd
test/kanidmd: ## Run cargo test in docker test/kanidmd: ## Run cargo test in docker
test/kanidmd: test/kanidmd:
@$(CONTAINER_TOOL) build \ @$(CONTAINER_TOOL) build \
@ -80,53 +88,65 @@ test/kanidmd:
$(CONTAINER_BUILD_ARGS) . $(CONTAINER_BUILD_ARGS) .
@$(CONTAINER_TOOL) run --rm $(IMAGE_BASE)/server:$(IMAGE_VERSION)-builder cargo test @$(CONTAINER_TOOL) run --rm $(IMAGE_BASE)/server:$(IMAGE_VERSION)-builder cargo test
.PHONY: test/radiusd
test/radiusd: ## Run a test radius server test/radiusd: ## Run a test radius server
test/radiusd: build/radiusd test/radiusd: build/radiusd
cd kanidm_rlm_python && \ cd kanidm_rlm_python && \
./run_radius_container.sh ./run_radius_container.sh
.PHONY: test
test: test:
cargo test cargo test
.PHONY: vendor
vendor: vendor:
cargo vendor cargo vendor
.PHONY: vendor-prep
vendor-prep: vendor vendor-prep: vendor
tar -cJf vendor.tar.xz vendor tar -cJf vendor.tar.xz vendor
.PHONY: install-tools
install-tools: ## install tools in local environment install-tools: ## install tools in local environment
install-tools: install-tools:
cd kanidm_tools && cargo install --path . --force cd kanidm_tools && cargo install --path . --force
.PHONY: prep
prep: prep:
cargo outdated -R cargo outdated -R
cargo audit cargo audit
.PHONY: test/pykanidm/pytest
test/pykanidm/pytest: test/pykanidm/pytest:
cd pykanidm && \ cd pykanidm && \
poetry install && \ poetry install && \
poetry run pytest -vv poetry run pytest -vv
.PHONY: test/pykanidm/pylint
test/pykanidm/pylint: test/pykanidm/pylint:
cd pykanidm && \ cd pykanidm && \
poetry install && \ poetry install && \
poetry run pylint tests kanidm poetry run pylint tests kanidm
.PHONY: test/pykanidm/mypy
test/pykanidm/mypy: test/pykanidm/mypy:
cd pykanidm && \ cd pykanidm && \
poetry install && \ poetry install && \
echo "Running mypy" && \ echo "Running mypy" && \
poetry run mypy --strict tests kanidm poetry run mypy --strict tests kanidm
.PHONY: test/pykanidm
test/pykanidm: ## run the test suite (mypy/pylint/pytest) for the kanidm python module test/pykanidm: ## run the test suite (mypy/pylint/pytest) for the kanidm python module
test/pykanidm: test/pykanidm/pytest test/pykanidm/mypy test/pykanidm/pylint test/pykanidm: test/pykanidm/pytest test/pykanidm/mypy test/pykanidm/pylint
######################################################################## ########################################################################
.PHONY: doc
doc: ## Build the rust documentation locally doc: ## Build the rust documentation locally
doc: doc:
cargo doc --document-private-items cargo doc --document-private-items
.PHONY: book
book: ## Build the Kanidm book book: ## Build the Kanidm book
book: book:
cargo doc --no-deps cargo doc --no-deps
@ -135,6 +155,7 @@ book:
mkdir -p ./docs/rustdoc/${BOOK_VERSION} mkdir -p ./docs/rustdoc/${BOOK_VERSION}
mv ./target/doc/* ./docs/rustdoc/${BOOK_VERSION}/ mv ./target/doc/* ./docs/rustdoc/${BOOK_VERSION}/
.PHONY: book_versioned
book_versioned: book_versioned:
echo "Book version: ${BOOK_VERSION}" echo "Book version: ${BOOK_VERSION}"
rm -rf ./target/doc rm -rf ./target/doc
@ -148,15 +169,18 @@ book_versioned:
mv ./target/doc/* ./docs/${BOOK_VERSION}/rustdoc/ mv ./target/doc/* ./docs/${BOOK_VERSION}/rustdoc/
git switch master git switch master
.PHONY: clean_book
clean_book: clean_book:
rm -rf ./docs rm -rf ./docs
.PHONY: docs/pykanidm/build
docs/pykanidm/build: ## Build the mkdocs docs/pykanidm/build: ## Build the mkdocs
docs/pykanidm/build: docs/pykanidm/build:
cd pykanidm && \ cd pykanidm && \
poetry install && \ poetry install && \
poetry run mkdocs build poetry run mkdocs build
.PHONY: docs/pykanidm/serve
docs/pykanidm/serve: ## Run the local mkdocs server docs/pykanidm/serve: ## Run the local mkdocs server
docs/pykanidm/serve: docs/pykanidm/serve:
cd pykanidm && \ cd pykanidm && \
@ -165,17 +189,21 @@ docs/pykanidm/serve:
######################################################################## ########################################################################
.PHONY: release/kanidm
release/kanidm: ## Build the Kanidm CLI - ensure you include the environment variable KANIDM_BUILD_PROFILE release/kanidm: ## Build the Kanidm CLI - ensure you include the environment variable KANIDM_BUILD_PROFILE
cargo build -p kanidm_tools --bin kanidm --release cargo build -p kanidm_tools --bin kanidm --release
.PHONY: release/kanidmd
release/kanidmd: ## Build the Kanidm daemon - ensure you include the environment variable KANIDM_BUILD_PROFILE release/kanidmd: ## Build the Kanidm daemon - ensure you include the environment variable KANIDM_BUILD_PROFILE
cargo build -p daemon --bin kanidmd --release cargo build -p daemon --bin kanidmd --release
.PHONY: release/kanidm-ssh
release/kanidm-ssh: ## Build the Kanidm SSH tools - ensure you include the environment variable KANIDM_BUILD_PROFILE release/kanidm-ssh: ## Build the Kanidm SSH tools - ensure you include the environment variable KANIDM_BUILD_PROFILE
cargo build --release \ cargo build --release \
--bin kanidm_ssh_authorizedkeys \ --bin kanidm_ssh_authorizedkeys \
--bin kanidm_ssh_authorizedkeys_direct --bin kanidm_ssh_authorizedkeys_direct
.PHONY: release/kanidm-unixd
release/kanidm-unixd: ## Build the Kanidm UNIX tools - ensure you include the environment variable KANIDM_BUILD_PROFILE release/kanidm-unixd: ## Build the Kanidm UNIX tools - ensure you include the environment variable KANIDM_BUILD_PROFILE
release/kanidm-unixd: release/kanidm-unixd:
cargo build -p pam_kanidm --release cargo build -p pam_kanidm --release