From 4cafa3e92d607b089a8e50237e4593ef2afd8e4f Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Fri, 25 Sep 2015 15:01:59 -0700 Subject: [PATCH 1/2] Ignore _gopath in verify scripts The _gopath directory is used in Jenkins to install extra dependencies, and any files in it should be ignored by the various verification scripts. --- hack/after-build/verify-description.sh | 1 + hack/boilerplate/boilerplate.py | 2 +- hack/lib/util.sh | 3 ++- hack/update-gofmt.sh | 1 + hack/verify-flags-underscore.py | 4 +++- hack/verify-gofmt.sh | 1 + 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/hack/after-build/verify-description.sh b/hack/after-build/verify-description.sh index 3e2bc051faf..183cffeb63e 100755 --- a/hack/after-build/verify-description.sh +++ b/hack/after-build/verify-description.sh @@ -33,6 +33,7 @@ find_files() { \( \ -wholename './output' \ -o -wholename './_output' \ + -o -wholename './_gopath' \ -o -wholename './release' \ -o -wholename './target' \ -o -wholename '*/third_party/*' \ diff --git a/hack/boilerplate/boilerplate.py b/hack/boilerplate/boilerplate.py index 7c788f54d0a..f662640623c 100755 --- a/hack/boilerplate/boilerplate.py +++ b/hack/boilerplate/boilerplate.py @@ -95,7 +95,7 @@ def file_passes(filename, refs, regexs): def file_extension(filename): return os.path.splitext(filename)[1].split(".")[-1].lower() -skipped_dirs = ['Godeps', 'third_party', '_output', '.git'] +skipped_dirs = ['Godeps', 'third_party', '_gopath', '_output', '.git'] def normalize_files(files): newfiles = [] for pathname in files: diff --git a/hack/lib/util.sh b/hack/lib/util.sh index fc7c050277f..9c2dfa2f3d0 100755 --- a/hack/lib/util.sh +++ b/hack/lib/util.sh @@ -241,11 +241,12 @@ kube::util::gen-analytics() { else dir="${path}" fi - # We don't touch files in Godeps|third_party, and the kubectl + # We don't touch files in Godeps|third_party|_gopath, and the kubectl # docs are autogenerated by gendocs. mdfiles=($( find "${dir}" -name "*.md" -type f \ -not -path "${path}/Godeps/*" \ -not -path "${path}/third_party/*" \ + -not -path "${path}/_gopath/*" \ -not -path "${path}/_output/*" \ -not -path "${path}/docs/user-guide/kubectl/kubectl*" )) for f in "${mdfiles[@]}"; do diff --git a/hack/update-gofmt.sh b/hack/update-gofmt.sh index 6f7727de83a..4db637c00bc 100755 --- a/hack/update-gofmt.sh +++ b/hack/update-gofmt.sh @@ -36,6 +36,7 @@ find_files() { \( \ -wholename './output' \ -o -wholename './_output' \ + -o -wholename './_gopath' \ -o -wholename './release' \ -o -wholename './target' \ -o -wholename '*/third_party/*' \ diff --git a/hack/verify-flags-underscore.py b/hack/verify-flags-underscore.py index 8b11d8da361..bc61a07208f 100755 --- a/hack/verify-flags-underscore.py +++ b/hack/verify-flags-underscore.py @@ -55,6 +55,8 @@ def get_all_files(rootdir): # don't visit certain dirs if 'Godeps' in dirs: dirs.remove('Godeps') + if '_gopath' in dirs: + dirs.remove('_gopath') if 'third_party' in dirs: dirs.remove('third_party') if '.git' in dirs: @@ -77,7 +79,7 @@ def get_all_files(rootdir): def normalize_files(rootdir, files): newfiles = [] - a = ['Godeps', 'third_party', 'exceptions.txt', 'known-flags.txt'] + a = ['Godeps', '_gopath', 'third_party', '.git', 'exceptions.txt', 'known-flags.txt'] for f in files: if any(x in f for x in a): continue diff --git a/hack/verify-gofmt.sh b/hack/verify-gofmt.sh index 1703fc35dfc..5f1e6eb3575 100755 --- a/hack/verify-gofmt.sh +++ b/hack/verify-gofmt.sh @@ -36,6 +36,7 @@ find_files() { \( \ -wholename './output' \ -o -wholename './_output' \ + -o -wholename './_gopath' \ -o -wholename './release' \ -o -wholename './target' \ -o -wholename '*/third_party/*' \ From 1016b493df70be5b402883688788aa5df7da4c77 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Fri, 25 Sep 2015 14:50:09 -0700 Subject: [PATCH 2/2] Add Jenkins shell script to setup and run verification tests --- hack/jenkins/gotest.sh | 2 +- hack/jenkins/verify.sh | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 hack/jenkins/verify.sh diff --git a/hack/jenkins/gotest.sh b/hack/jenkins/gotest.sh index 19b1d473e93..046dae54c55 100755 --- a/hack/jenkins/gotest.sh +++ b/hack/jenkins/gotest.sh @@ -31,8 +31,8 @@ export GOPATH=${HOME}/_gopath export PATH=${GOPATH}/bin:${HOME}/third_party/etcd:/usr/local/go/bin:$PATH # Install a few things needed by unit and /integration tests. +command -v etcd &>/dev/null || ./hack/install-etcd.sh go get -u github.com/jstemmer/go-junit-report -./hack/install-etcd.sh # Enable the Go race detector. export KUBE_RACE=-race diff --git a/hack/jenkins/verify.sh b/hack/jenkins/verify.sh new file mode 100755 index 00000000000..59725abec37 --- /dev/null +++ b/hack/jenkins/verify.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Copyright 2015 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. + +# Sets up the environment (e.g. installing godep and etcd if necessary) +# and then runs all of the verification checks. + +set -o errexit +set -o nounset +set -o pipefail +set -o xtrace + +# !!! ALERT !!! Jenkins default $HOME is /var/lib/jenkins, which is +# global across jobs. We change $HOME instead to ${WORKSPACE}, which +# is an incoming variable Jenkins provides us for this job's scratch +# space. +export HOME=${WORKSPACE} # Nothing should want Jenkins $HOME +export GOPATH=${HOME}/_gopath +export PATH=${GOPATH}/bin:${HOME}/third_party/etcd:/usr/local/go/bin:$PATH + +# Install a few things needed by the verification tests. +command -v etcd &>/dev/null || ./hack/install-etcd.sh +go get -u github.com/tools/godep + +./hack/verify-all.sh -v