diff options
author | 2020-03-26 10:00:46 +0100 | |
---|---|---|
committer | 2020-03-26 10:00:46 +0100 | |
commit | 570bfba80eeb66498315f0a83fd665d72d20941c (patch) | |
tree | 634c5e20e5979d89fe4867382da526fa06d13d8c | |
parent | 14ca4549818c00c31dbcc861d7b12de2929e014c (diff) | |
download | coredns-570bfba80eeb66498315f0a83fd665d72d20941c.tar.gz coredns-570bfba80eeb66498315f0a83fd665d72d20941c.tar.zst coredns-570bfba80eeb66498315f0a83fd665d72d20941c.zip |
Add CI test for man page updates (#3729)
Run make -f Makefile.doc in CircleCI to test that man pages are updated
in PRs.
Signed-off-by: Ben Kochie <superq@gmail.com>
-rw-r--r-- | .circleci/config.yml | 9 | ||||
-rw-r--r-- | Makefile.doc | 31 | ||||
-rwxr-xr-x | fixup_file_mtime.sh | 15 |
3 files changed, 47 insertions, 8 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 6bfb2d013..3a1761a55 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,6 +40,14 @@ buildCoreDNSImage: &buildCoreDNSImage kind load docker-image coredns jobs: + doc-test: + docker: + - image: circleci/golang:1.13 + steps: + - checkout + - run: ./fixup_file_mtime.sh + - run: make -f Makefile.doc + - run: git diff --exit-code -- man/ kubernetes-tests: <<: *integrationDefaults steps: @@ -62,4 +70,5 @@ workflows: version: 2 integration-tests: jobs: + - doc-test - kubernetes-tests diff --git a/Makefile.doc b/Makefile.doc index 95f4e1c6a..2adc143a3 100644 --- a/Makefile.doc +++ b/Makefile.doc @@ -3,20 +3,35 @@ # updated before doing a release. The Debian package, for instance, looks at these pages # and will install them on your system. -MMARK:=mmark -man +MMARK_VERSION:=2.2.4 PLUGINS:=$(wildcard plugin/*/README.md) READMES:=$(subst plugin/,,$(PLUGINS)) READMES:=$(subst /README.md,,$(READMES)) PLUGINS:=$(subst plugin/,coredns-,$(PLUGINS)) PLUGINS:=$(subst /README.md,(7),$(PLUGINS)) -ifeq (, $(shell which mmark)) - $(warning "No mmark in $$PATH, exiting, see github.com/mmarkdown/mmark") -all: - @echo "noop" -else -all: man/coredns.1 man/corefile.5 plugins -endif +all: mmark man/coredns.1 man/corefile.5 plugins + +GO ?= go +GOHOSTOS ?= $(shell $(GO) env GOHOSTOS) +GOHOSTARCH ?= $(shell $(GO) env GOHOSTARCH) +GO_BUILD_PLATFORM ?= $(GOHOSTOS)_$(GOHOSTARCH) + +FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) +MMARK_BIN := $(FIRST_GOPATH)/bin/mmark +MMARK := $(FIRST_GOPATH)/bin/mmark -man + +MMARK_URL := https://github.com/mmarkdown/mmark/releases/download/v$(MMARK_VERSION)/mmark_$(MMARK_VERSION)_$(GO_BUILD_PLATFORM).tgz + +.PHONY: mmark +mmark: $(MMARK_BIN) + +$(MMARK_BIN): + $(eval MMARK_TMP := $(shell mktemp -d)) + curl -s -L $(MMARK_URL) | tar -xvzf - -C $(MMARK_TMP) + mkdir -p $(FIRST_GOPATH)/bin + cp $(MMARK_TMP)/mmark $(FIRST_GOPATH)/bin/mmark + rm -r $(MMARK_TMP) man/coredns.1: coredns.1.md @/bin/echo -e '%%%\n title = "coredns 1"\n' \ diff --git a/fixup_file_mtime.sh b/fixup_file_mtime.sh new file mode 100755 index 000000000..662c16dbd --- /dev/null +++ b/fixup_file_mtime.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# Description: Fix up the file mtimes based on the git log. + +set -u -o pipefail + +if [[ ! -f 'coredns.1.md' ]]; then + echo 'ERROR: Must be run from the top of the git repo.' + exit 1 +fi + +for file in coredns.1.md corefile.5.md plugin/*/README.md; do + time=$(git log --pretty=format:%cd -n 1 --date='format:%Y%m%d%H%M.%S' "${file}") + touch -m -t "${time}" "${file}" +done |