This repository has been archived by the owner on Oct 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Option to not use docker for Makefile in docs/website (#1087)
## Description This makes it so that we have an option to locally run all Makefile targets without having to go through Docker. That said, it retains Docker as the default way to run it, but now we can set an evn variable `CORSO_USE_DOCKER=-1` to skip running through docker. I understand if this looks a bit hacky and don't want to add it in, but thought I wold propose this anyways. While not major, I was able to get a good amount of decrease in build times. ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [x] 💻 CI/Deployment - [ ] 🐹 Trivial/Minor ## Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * #<issue> ## Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
- Loading branch information
Showing
5 changed files
with
50 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -93,6 +93,8 @@ jobs: | |
npm i -g [email protected] # NOTE: update in Dockerfile when updating | ||
- name: Run docs lint | ||
env: | ||
CORSO_USE_DOCKER: -1 # prevent using docker inside makefile | ||
run: | | ||
cd docs && make -o genclidocs check | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,69 +1,60 @@ | ||
.PHONY: buildimage build dev shell check genclidocs | ||
.PHONY: buildimage build dev shell check genclidocs _validatemdgen | ||
|
||
# Specify `CORSO_USE_DOCKER=-1` to skip using Docker for builds | ||
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 | ||
CORSO_REPO := /go/src/github.com/alcionai/corso | ||
CORSO_LOCAL_PATH := $(shell git rev-parse --show-toplevel) | ||
DOCSC := docker run --rm -it -p 3000:3000 -v ${PWD}:/usr/src/docs alcion/docs | ||
DOCSE := ${DOCSC} # for enforcing docker container as environment | ||
GOC := docker run --rm -it \ | ||
-v ${CORSO_LOCAL_PATH}:${CORSO_REPO} -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}/src \ | ||
golang:1.18 | ||
ifeq (${CORSO_USE_DOCKER},-1) | ||
DOCSC := | ||
GOC := cd ${CORSO_LOCAL_PATH}/src && | ||
CORSO_REPO := ${CORSO_LOCAL_PATH} | ||
endif | ||
|
||
MDGEN_SRC := ${CORSO_REPO}/src/cmd/mdgen/mdgen.go | ||
MDGEN_BINARY := ${CORSO_BUILD_BIN}/mdgen | ||
CLI_DOCS_CONTAINER := ${CORSO_REPO_CONTAINER}/docs/docs/cli | ||
CLI_DOCS := ${CORSO_REPO}/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 | ||
$(DOCSC) npm start -- --host 0.0.0.0 | ||
|
||
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/ | ||
$(DOCSC) vale $(VALE_TARGET) | ||
$(DOCSC) 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 | ||
dockershell: | ||
$(DOCSE) /bin/bash | ||
|
||
build: genclidocs | ||
docker run --rm \ | ||
-v ${PWD}:/usr/src/docs alcion/docs npm run build | ||
$(DOCSC) npm run build | ||
|
||
genclidocs: ${MDGEN_BINARY} | ||
@echo 'Auto-generating Corso CLI docs...' | ||
rm -rf docs/cli | ||
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} | ||
$(DOCSC) rm -rf docs/cli | ||
$(GOC) ${MDGEN_BINARY} --cli-folder ${CLI_DOCS} | ||
|
||
${MDGEN_BINARY}: $(shell find ../src -type f -name *.go) $(shell find ../src -type d ) | ||
_validatemdgen: # in case we have a different architecture | ||
${MDGEN_BINARY} --help >/dev/null || rm -rf ${MDGEN_BINARY} | ||
|
||
${MDGEN_BINARY}: $(shell find ${CORSO_LOCAL_PATH}/src -type f -name *.go) $(shell find ${CORSO_LOCAL_PATH}/src -type d ) _validatemdgen | ||
@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 \ | ||
mod download | ||
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} | ||
$(GOC) go mod download | ||
$(GOC) go build -o ${MDGEN_BINARY} ${MDGEN_SRC} | ||
|
||
clean: | ||
$(DOCSC) rm -rf docs/cli | ||
$(DOCSC) rm -rf ${CORSO_BUILD_DIR} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters