## Description Auto-generate CLI docs in docs dev tooling. * Add new Makefile target to rebuild the `mdgen` binary, only if needed. This helps with slow in container builds. Relies on host caching of both modules and the actual binary. This approach is probably not suitable for the actual docs CI build. * Actual generation is fast and done every time when using relevant docs dev tooling commands. NOTE: .gitignore may need to be adjusted if we switch to creating the CLI docs as part of build and tooling as opposed to the current automated PR with changes. ## Type of change Please check the type of change your PR introduces: - [x] 🌻 Feature - [ ] 🐛 Bugfix - [x] 🗺️ Documentation - [ ] 🤖 Test - [ ] 🐹 Trivial/Minor ## Issue(s) ## Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
64 lines
1.9 KiB
Makefile
64 lines
1.9 KiB
Makefile
.PHONY: buildimage build dev shell check genclidocs
|
|
|
|
#
|
|
CORSO_BUILD_DIR := /tmp/.corsobuild
|
|
CORSO_BUILD_CACHE := ${CORSO_BUILD_DIR}/cache
|
|
CORSO_BUILD_MOD := ${CORSO_BUILD_DIR}/mod
|
|
CORSO_BUILD_BIN := ${CORSO_BUILD_DIR}/bin
|
|
|
|
CORSO_REPO := ${PWD}/..
|
|
CORSO_REPO_CONTAINER := /go/src/github.com/alcionai/corso
|
|
|
|
MDGEN_SRC_CONTAINER := ${CORSO_REPO_CONTAINER}/src/cmd/mdgen/mdgen.go
|
|
MDGEN_BINARY := ${CORSO_BUILD_BIN}/mdgen
|
|
CLI_DOCS_CONTAINER := ${CORSO_REPO_CONTAINER}/docs/docs/cli
|
|
|
|
|
|
buildimage:
|
|
docker build -t "alcion/docs:latest" .
|
|
|
|
dev: genclidocs
|
|
docker run --rm -it \
|
|
-p 3000:3000 \
|
|
-v ${PWD}:/usr/src/docs alcion/docs
|
|
|
|
VALE_TARGET ?= docs README.md
|
|
|
|
dockercheck: genclidocs
|
|
docker run --rm \
|
|
-v ${PWD}:/usr/src/docs alcion/docs vale $(VALE_TARGET)
|
|
docker run --rm \
|
|
-v ${PWD}:/usr/src/docs alcion/docs markdownlint '**/*.md' --ignore styles/ --ignore src/ --ignore node_modules/
|
|
|
|
check: genclidocs
|
|
vale $(VALE_TARGET)
|
|
markdownlint '**/*.md' --ignore styles/ --ignore src/ --ignore node_modules/
|
|
|
|
shell:
|
|
docker run --rm -it \
|
|
-p 3000:3000 \
|
|
-v ${PWD}:/usr/src/docs alcion/docs /bin/bash
|
|
|
|
build: genclidocs
|
|
docker run --rm \
|
|
-v ${PWD}:/usr/src/docs alcion/docs npm run build
|
|
|
|
genclidocs: ${MDGEN_BINARY}
|
|
@echo 'Auto-generating Corso CLI docs...'
|
|
docker run --rm -it \
|
|
-v ${CORSO_REPO}:${CORSO_REPO_CONTAINER} -v ${CORSO_BUILD_DIR}:${CORSO_BUILD_DIR} \
|
|
--workdir ${CORSO_REPO_CONTAINER}/src \
|
|
--entrypoint ${MDGEN_BINARY} \
|
|
golang:1.18 \
|
|
--cli-folder ${CLI_DOCS_CONTAINER}
|
|
|
|
${MDGEN_BINARY}: ${CORSO_REPO}/src/** ${CORSO_REPO}/src/**/*.go
|
|
@echo 'Re-building Corso CLI docs auto-gen tooling...'
|
|
docker run --rm -it \
|
|
-v ${CORSO_REPO}:${CORSO_REPO_CONTAINER} -v ${CORSO_BUILD_DIR}:${CORSO_BUILD_DIR} \
|
|
--env GOCACHE=${CORSO_BUILD_CACHE} --env GOMODCACHE=${CORSO_BUILD_MOD} --env GOTMPDIR=${CORSO_BUILD_DIR} \
|
|
--workdir ${CORSO_REPO_CONTAINER}/src \
|
|
--entrypoint /usr/local/go/bin/go \
|
|
golang:1.18 \
|
|
build -o ${MDGEN_BINARY} ${MDGEN_SRC_CONTAINER}
|