diff --git a/Makefile b/Makefile index 09fc463140d..c5fd5c5560f 100644 --- a/Makefile +++ b/Makefile @@ -119,7 +119,7 @@ cluster-api-provider-ibmcloud: $(CONTROLLER_GEN) .PHONY: api-docs api-docs: $(GENAPIDOCS) - $(GENAPIDOCS) --config $(DIR)/docs/api-doc-gen/config.json --template-dir $(DIR)/docs/api-doc-gen/templates --api-dir ./api/v1alpha1 --out-file $(DIR)/docs/content/reference/api.md + hack/gen-api-docs.sh $(GENAPIDOCS) $(DIR) # Run tests .PHONY: test diff --git a/hack/gen-api-docs.sh b/hack/gen-api-docs.sh new file mode 100755 index 00000000000..5de060de543 --- /dev/null +++ b/hack/gen-api-docs.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# This generation script sets up a fake GOPATH for docs generation +# to work around performance issues in the upstream code generation +# libraries. See: +# +# https://github.com/kubernetes/gengo/issues/147 +# https://github.com/kubernetes/code-generator/issues/69 + +GEN_BIN="$1" +REPO_ROOT_DIR="$2" + +FAKE_GOPATH="$(mktemp -d)" +trap 'rm -rf ${FAKE_GOPATH}' EXIT + +FAKE_REPOPATH="${FAKE_GOPATH}/src/github.com/openshift/hypershift" +mkdir -p "$(dirname "${FAKE_REPOPATH}")" && ln -s "${REPO_ROOT_DIR}" "${FAKE_REPOPATH}" + +export GOPATH="${FAKE_GOPATH}" +export GO111MODULE="off" + +cd "${FAKE_REPOPATH}" + +GO111MODULE="off" GOPATH="${FAKE_GOPATH}" ${GEN_BIN} \ +--config "${FAKE_REPOPATH}/docs/api-doc-gen/config.json" \ +--template-dir "${FAKE_REPOPATH}/docs/api-doc-gen/templates" \ +--api-dir ./api/v1alpha1 \ +--out-file "${FAKE_REPOPATH}/docs/content/reference/api.md"