Skip to content

Commit

Permalink
Add docs-verify script
Browse files Browse the repository at this point in the history
  • Loading branch information
cblecker committed Apr 12, 2017
1 parent 9856c23 commit 797800a
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 9 deletions.
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,11 @@ protoc:

.PHONY: docs
docs: build
@mkdir -p docs/helm docs/man/man1
bin/helm docs --dir ./docs/helm
bin/helm docs --dir ./docs/man/man1 --type man
bin/helm docs --dir ./scripts --type bash
scripts/docs-clean-home.sh
@scripts/update-docs.sh

.PHONY: verify-docs
verify-docs: build
@scripts/verify-docs.sh

.PHONY: clean
clean:
Expand Down
2 changes: 1 addition & 1 deletion circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ machine:
- curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0

environment:
GOVERSION: "1.7.4"
GOVERSION: "1.7.5"
GOPATH: "${HOME}/.go_workspace"
WORKDIR: "${GOPATH}/src/k8s.io/helm"
PROJECT_NAME: "kubernetes-helm"
Expand Down
8 changes: 7 additions & 1 deletion scripts/ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ run_unit_test() {
echo "Running unit tests with coverage'"
./scripts/coverage.sh --coveralls
else
echo "Running unit tests'"
echo "Running 'unit tests'"
make test-unit
fi
}
Expand All @@ -37,11 +37,17 @@ run_style_check() {
make test-style
}

run_docs_check() {
echo "Running 'make verify-docs'"
make verify-docs
}

# Build to ensure packages are compiled
echo "Running 'make build'"
make build

case "${CIRCLE_NODE_INDEX-0}" in
0) run_unit_test ;;
1) run_style_check ;;
2) run_docs_check ;;
esac
50 changes: 50 additions & 0 deletions scripts/update-docs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/env bash

# Copyright 2017 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -euo pipefail

source scripts/util.sh

if LANG=C sed --help 2>&1 | grep -q GNU; then
SED="sed"
elif which gsed &>/dev/null; then
SED="gsed"
else
echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2
exit 1
fi

kube::util::ensure-temp-dir

mkdir -p ${KUBE_TEMP}/docs/helm ${KUBE_TEMP}/docs/man/man1 ${KUBE_TEMP}/scripts
bin/helm docs --dir ${KUBE_TEMP}/docs/helm
bin/helm docs --dir ${KUBE_TEMP}/docs/man/man1 --type man
bin/helm docs --dir ${KUBE_TEMP}/scripts --type bash


FILES=$(find ${KUBE_TEMP} -type f)

${SED} -i -e "s:${HOME}:~:" ${FILES}

for i in ${FILES}; do
ret=0
truepath=$(echo ${i} | ${SED} "s:${KUBE_TEMP}/::")
diff -NauprB -I 'Auto generated' "${i}" "${truepath}" > /dev/null || ret=$?
if [[ $ret -ne 0 ]]; then
echo "${truepath} changed. Updating.."
cp "${i}" "${truepath}"
fi
done
58 changes: 58 additions & 0 deletions scripts/util.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/usr/bin/env bash

# Copyright 2016 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -euo pipefail

# Example: kube::util::trap_add 'echo "in trap DEBUG"' DEBUG
# See: http://stackoverflow.com/questions/3338030/multiple-bash-traps-for-the-same-signal
kube::util::trap_add() {
local trap_add_cmd
trap_add_cmd=$1
shift

for trap_add_name in "$@"; do
local existing_cmd
local new_cmd

# Grab the currently defined trap commands for this trap
existing_cmd=`trap -p "${trap_add_name}" | awk -F"'" '{print $2}'`

if [[ -z "${existing_cmd}" ]]; then
new_cmd="${trap_add_cmd}"
else
new_cmd="${existing_cmd};${trap_add_cmd}"
fi

# Assign the test
trap "${new_cmd}" "${trap_add_name}"
done
}

# Opposite of kube::util::ensure-temp-dir()
kube::util::cleanup-temp-dir() {
rm -rf "${KUBE_TEMP}"
}

# Create a temp dir that'll be deleted at the end of this bash session.
#
# Vars set:
# KUBE_TEMP
kube::util::ensure-temp-dir() {
if [[ -z ${KUBE_TEMP-} ]]; then
KUBE_TEMP=$(mktemp -d 2>/dev/null || mktemp -d -t kubernetes.XXXXXX)
kube::util::trap_add kube::util::cleanup-temp-dir EXIT
fi
}
24 changes: 22 additions & 2 deletions scripts/docs-clean-home.sh → scripts/verify-docs.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

# Copyright 2016 The Kubernetes Authors All rights reserved.
# Copyright 2017 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -16,6 +16,8 @@

set -euo pipefail

source scripts/util.sh

if LANG=C sed --help 2>&1 | grep -q GNU; then
SED="sed"
elif which gsed &>/dev/null; then
Expand All @@ -25,6 +27,24 @@ else
exit 1
fi

FILES=$(find ./docs -type f)
kube::util::ensure-temp-dir

mkdir -p ${KUBE_TEMP}/docs/helm ${KUBE_TEMP}/docs/man/man1 ${KUBE_TEMP}/scripts
bin/helm docs --dir ${KUBE_TEMP}/docs/helm
bin/helm docs --dir ${KUBE_TEMP}/docs/man/man1 --type man
bin/helm docs --dir ${KUBE_TEMP}/scripts --type bash


FILES=$(find ${KUBE_TEMP} -type f)

${SED} -i -e "s:${HOME}:~:" ${FILES}
ret=0
for i in ${FILES}; do
diff -NauprB -I 'Auto generated' ${i} $(echo ${i} | ${SED} "s:${KUBE_TEMP}/::") || ret=$?
done
if [[ $ret -eq 0 ]]; then
echo "helm docs up to date."
else
echo "helm docs are out of date. Please run \"make docs\""
exit 1
fi

0 comments on commit 797800a

Please sign in to comment.