1
0
Fork 0
mirror of synced 2024-11-14 05:28:57 -05:00
yadm/Makefile
Tim Byrne c8e8633639
Use docker volume for jekyll dependencies
Using a volume allows "caching" the bundled dependencies for jekyll.
Created a "fresh" target for also removing volumes.
2019-10-17 23:50:15 -05:00

91 lines
2.3 KiB
Makefile

IGNORED = .jekyll-metadata Gemfile.lock _site
VOLUME_ARG =
.PHONY: all
all:
@$(MAKE) usage | less
# Display usage for all make targets
.PHONY: usage
usage:
@echo
@echo 'make TARGET'
@echo
@echo 'TESTING'
@echo
@echo ' make test'
@echo ' - Perform tests done by continuous integration.'
@echo ' This target will:'
@echo ' - Remove previously built data'
@echo ' - Build the site'
@echo ' - Test the site using html-proofer'
@echo
@echo ' make up'
@echo ' - Start a container to locally test the website.'
@echo ' This target will:'
@echo ' - Start a jekyll container (re-using it if it already exists)'
@echo ' - Expose the website on port 4000 of the local host'
@echo
@echo ' make logs'
@echo ' - Tail the logs of the running jekyll container.'
@echo
@echo ' make restart'
@echo ' - Restart the jekyll container.'
@echo
@echo ' make down'
@echo ' - Shutdown and remove the jekyll container.'
@echo
@echo ' make clean'
@echo ' - Remove previously built data and any jekyll containers.'
@echo
@echo ' make fresh'
@echo ' - Like "make clean", but also removes the docker volumes.'
@echo
.PHONY: test
test: require-docker-compose clean
docker-compose run --rm website test/validate
.PHONY: up
up: require-docker-compose
docker-compose up --no-recreate -d
@echo
@echo Started docker container. It will probably take a bit of time before
@echo the webserver is listening. You can run \"make logs\" to watch the logs
@echo of this container.
@echo
@echo The site will be served at http://0.0.0.0:4000/
.PHONY: logs
logs: require-docker-compose
docker-compose logs --tail 0 -f
.PHONY: restart
restart: require-docker-compose
docker-compose restart
.PHONY: down
down: require-docker-compose
docker-compose down --remove-orphans ${VOLUME_ARG}
.PHONY: clean
clean: down
rm -rf ${IGNORED}
.PHONY: fresh
fresh: VOLUME_ARG = -v
fresh: clean
.PHONY: require-docker-compose
require-docker-compose: require-docker
@if ! command -v "docker-compose" >/dev/null 2>&1; then \
echo "Sorry, this make target requires docker-compose to be installed."; \
false; \
fi
.PHONY: require-docker
require-docker:
@if ! command -v "docker" >/dev/null 2>&1; then \
echo "Sorry, this make target requires docker to be installed."; \
false; \
fi