2020-06-10 10:28:48 +00:00
HUGO_VERSION = $( shell grep ^HUGO_VERSION netlify.toml | tail -n 1 | cut -d '=' -f 2 | tr -d " \"\n" )
NODE_BIN = node_modules/.bin
NETLIFY_FUNC = $( NODE_BIN) /netlify-lambda
# The CONTAINER_ENGINE variable is used for specifying the container engine. By default 'docker' is used
# but this can be overridden when calling make, e.g.
2020-06-24 19:11:06 +00:00
# CONTAINER_ENGINE=podman make container-image
2020-06-10 10:28:48 +00:00
CONTAINER_ENGINE ?= docker
2020-10-05 22:42:07 +00:00
IMAGE_REGISTRY ?= gcr.io/k8s-staging-sig-docs
2020-07-20 06:53:40 +00:00
IMAGE_VERSION = $( shell scripts/hash-files.sh Dockerfile Makefile | cut -c 1-12)
2020-10-05 22:42:07 +00:00
CONTAINER_IMAGE = $( IMAGE_REGISTRY) /k8s-website-hugo:v$( HUGO_VERSION) -$( IMAGE_VERSION)
2020-06-10 10:28:48 +00:00
CONTAINER_RUN = $( CONTAINER_ENGINE) run --rm --interactive --tty --volume $( CURDIR) :/src
CCRED = \0 33[ 0; 31m
CCEND = \0 33[ 0m
2018-06-21 17:13:29 +00:00
2019-06-09 13:31:07 +00:00
.PHONY : all build build -preview help serve
2016-09-07 23:37:43 +00:00
help : ## Show this help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $( MAKEFILE_LIST)
2022-01-13 10:02:24 +00:00
module-check : ## Check if all of the required submodules are correctly initialized.
2020-12-03 09:29:26 +00:00
@git submodule status --recursive | awk '/^[+-]/ {err = 1; printf "\033[31mWARNING\033[0m Submodule not initialized: \033[34m%s\033[0m\n",$$2} END { if (err != 0) print "You need to run \033[32mmake module-init\033[0m to initialize missing modules first"; exit err }' 1>& 2
2022-01-13 10:02:24 +00:00
module-init : ## Initialize required submodules.
2020-12-03 09:29:26 +00:00
@echo "Initializing submodules..." 1>& 2
@git submodule update --init --recursive --depth 1
2020-06-14 18:51:51 +00:00
2018-08-21 19:51:15 +00:00
all : build ## Build site with production settings and put deliverables in ./public
2016-09-07 23:37:43 +00:00
2021-12-07 14:16:55 +00:00
build : module -check ## Build site with non-production settings and put deliverables in ./public
hugo --minify --environment development
2016-09-07 23:37:43 +00:00
2020-06-14 18:51:51 +00:00
build-preview : module -check ## Build site with drafts and future posts enabled
2021-12-07 14:16:55 +00:00
hugo --buildDrafts --buildFuture --environment preview
2016-09-07 23:37:43 +00:00
2020-02-11 19:28:07 +00:00
deploy-preview : ## Deploy preview site via netlify
2021-12-07 14:16:55 +00:00
hugo --enableGitInfo --buildFuture --environment preview -b $( DEPLOY_PRIME_URL)
2020-01-15 12:47:33 +00:00
2018-10-03 20:04:39 +00:00
functions-build :
$( NETLIFY_FUNC) build functions-src
2018-08-21 19:51:15 +00:00
check-headers-file :
scripts/check-headers-file.sh
2021-12-07 14:16:55 +00:00
production-build : module -check ## Build the production site and ensure that noindex headers aren't added
hugo --minify --environment production
HUGO_ENV = production $( MAKE) check-headers-file
2018-08-21 19:51:15 +00:00
2021-12-07 14:16:55 +00:00
non-production-build : module -check ## Build the non-production site, which adds noindex headers to prevent indexing
hugo --enableGitInfo --environment nonprod
2018-08-21 19:51:15 +00:00
2020-06-14 18:51:51 +00:00
serve : module -check ## Boot the development server.
2021-12-07 14:16:55 +00:00
hugo server --buildFuture --environment development
2017-08-06 04:11:12 +00:00
2018-06-21 17:13:29 +00:00
docker-image :
2020-06-10 10:28:48 +00:00
@echo -e " $( CCRED) **** The use of docker-image is deprecated. Use container-image instead. **** $( CCEND) "
$( MAKE) container-image
2018-06-21 17:13:29 +00:00
docker-build :
2020-06-10 10:28:48 +00:00
@echo -e " $( CCRED) **** The use of docker-build is deprecated. Use container-build instead. **** $( CCEND) "
$( MAKE) container-build
2018-06-21 17:13:29 +00:00
2018-07-27 17:33:57 +00:00
docker-serve :
2020-06-10 10:28:48 +00:00
@echo -e " $( CCRED) **** The use of docker-serve is deprecated. Use container-serve instead. **** $( CCEND) "
$( MAKE) container-serve
2020-11-05 12:02:21 +00:00
container-image : ## Build a container image for the preview of the website
2020-06-10 10:28:48 +00:00
$( CONTAINER_ENGINE) build . \
--network= host \
--tag $( CONTAINER_IMAGE) \
--build-arg HUGO_VERSION = $( HUGO_VERSION)
2022-06-01 07:43:32 +00:00
container-push : container -image ## Push container image for the preview of the website
$( CONTAINER_ENGINE) push $( CONTAINER_IMAGE)
2020-06-14 18:51:51 +00:00
container-build : module -check
2021-12-07 14:16:55 +00:00
$( CONTAINER_RUN) --read-only --mount type = tmpfs,destination= /tmp,tmpfs-mode= 01777 $( CONTAINER_IMAGE) sh -c "npm ci && hugo --minify --environment development"
2020-06-10 10:28:48 +00:00
2022-06-02 13:11:25 +00:00
container-serve : module -check ## Boot the development server using container.
2021-12-07 14:16:55 +00:00
$( CONTAINER_RUN) --cap-drop= ALL --cap-add= AUDIT_WRITE --read-only --mount type = tmpfs,destination= /tmp,tmpfs-mode= 01777 -p 1313:1313 $( CONTAINER_IMAGE) hugo server --buildFuture --environment development --bind 0.0.0.0 --destination /tmp/hugo --cleanDestinationDir
2019-01-15 18:56:39 +00:00
2019-04-11 08:40:13 +00:00
test-examples :
scripts/test_examples.sh install
scripts/test_examples.sh run
2020-05-25 17:14:44 +00:00
.PHONY : link -checker -setup
link-checker-image-pull :
2020-06-10 10:28:48 +00:00
$( CONTAINER_ENGINE) pull wjdp/htmltest
docker-internal-linkcheck :
@echo -e " $( CCRED) **** The use of docker-internal-linkcheck is deprecated. Use container-internal-linkcheck instead. **** $( CCEND) "
$( MAKE) container-internal-linkcheck
container-internal-linkcheck : link -checker -image -pull
2021-12-07 14:16:55 +00:00
$( CONTAINER_RUN) $( CONTAINER_IMAGE) hugo --config config.toml,linkcheck-config.toml --buildFuture --environment test
2020-06-10 10:28:48 +00:00
$( CONTAINER_ENGINE) run --mount type = bind,source= $( CURDIR) ,target= /test --rm wjdp/htmltest htmltest
2021-01-19 19:51:46 +00:00
clean-api-reference : ## Clean all directories in API reference directory, preserve _index.md
rm -rf content/en/docs/reference/kubernetes-api/*/
api-reference : clean -api -reference ## Build the API reference pages. go needed
cd api-ref-generator/gen-resourcesdocs && \
2021-06-26 09:26:56 +00:00
go run cmd/main.go kwebsite --config-dir ../../api-ref-assets/config/ --file ../../api-ref-assets/api/swagger.json --output-dir ../../content/en/docs/reference/kubernetes-api --templates ../../api-ref-assets/templates