add script to validate nothing was changed that needed to re-run go generate

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
This commit is contained in:
Jessica Frazelle
2016-03-09 18:52:58 -08:00
parent 4340039d5b
commit 2e6fdf15c6
3 changed files with 62 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ script:
- go get github.com/cloudflare/redoctober
- go test github.com/cloudflare/redoctober...
- go vet github.com/cloudflare/redoctober...
- ./scripts/validate-html-generation
- go list -f '{{if len .TestGoFiles}}"go test -coverprofile={{.Dir}}/.coverprofile {{.ImportPath}}"{{end}}' ./... | xargs -i sh -c {}
- gover . coverprofile.txt
after_success:

33
scripts/.validate Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
if [ -z "$VALIDATE_UPSTREAM" ]; then
# this is kind of an expensive check, so let's not do this twice if we
# are running more than one validate bundlescript
VALIDATE_REPO='https://github.com/cloudflare/redoctober.git'
VALIDATE_BRANCH='master'
if [ "$TRAVIS" = 'true' -a "$TRAVIS_PULL_REQUEST" != 'false' ]; then
VALIDATE_REPO="https://github.com/${TRAVIS_REPO_SLUG}.git"
VALIDATE_BRANCH="${TRAVIS_BRANCH}"
fi
VALIDATE_HEAD="$(git rev-parse --verify HEAD)"
git fetch -q "$VALIDATE_REPO" "refs/heads/$VALIDATE_BRANCH"
VALIDATE_UPSTREAM="$(git rev-parse --verify FETCH_HEAD)"
VALIDATE_COMMIT_LOG="$VALIDATE_UPSTREAM..$VALIDATE_HEAD"
VALIDATE_COMMIT_DIFF="$VALIDATE_UPSTREAM...$VALIDATE_HEAD"
validate_diff() {
if [ "$VALIDATE_UPSTREAM" != "$VALIDATE_HEAD" ]; then
git diff "$VALIDATE_COMMIT_DIFF" "$@"
fi
}
validate_log() {
if [ "$VALIDATE_UPSTREAM" != "$VALIDATE_HEAD" ]; then
git log "$VALIDATE_COMMIT_LOG" "$@"
fi
}
fi

View File

@@ -0,0 +1,28 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "${DIR}/.validate"
IFS=$'\n'
files=( $(validate_diff --diff-filter=ACMR --name-only -- 'static/index.html' || true) )
unset IFS
if [ ${#files[@]} -gt 0 ]; then
# We run go generate to and see if we have a diff afterwards
go generate >/dev/null
# Let see if the working directory is clean
diffs="$(git status --porcelain -- static.go 2>/dev/null)"
if [ "$diffs" ]; then
{
echo 'The result of go generate differs'
echo
echo "$diffs"
echo
echo 'Please re-run go generate'
echo
} >&2
false
else
echo 'Congratulations! File generation is done correctly.'
fi
fi