48
48
# (if available), otherwise it is built from source.
49
49
: ${CSI_PROW_KIND_VERSION:= 447f3a0a68c202e69dd8e648cf494e0ddc35e513}
50
50
51
+ # ginkgo test runner version to use. If the pre-installed version is
52
+ # different, the desired version is built from source.
53
+ : ${CSI_PROW_GINKGO_VERSION:= v1.7.0}
54
+
51
55
# Enables building the code in the repository. On by default, can be
52
56
# disabled in jobs which only use pre-built components.
53
57
: ${CSI_PROW_BUILD_JOB:= true}
@@ -105,38 +109,44 @@ die () {
105
109
exit 1
106
110
}
107
111
112
+ # For additional tools.
113
+ CSI_PROW_BIN=" ${CSI_PROW_WORK} /bin"
114
+ mkdir -p " ${CSI_PROW_BIN} "
115
+ PATH=" ${CSI_PROW_BIN} :$PATH "
116
+
108
117
# Ensure that PATH has the desired version of the Go tools.
109
118
install_go () {
110
119
if go version 2> /dev/null | grep -q " go${CSI_PROW_GO_VERSION} " ; then
111
120
return
112
121
fi
113
122
114
123
curl " https://dl.google.com/go/go${CSI_PROW_GO_VERSION} .linux-amd64.tar.gz" | tar -C " ${CSI_PROW_WORK} " -zxf -
115
- PATH=" $CSI_PROW_WORK /go/bin:$PATH "
124
+ PATH=" ${ CSI_PROW_WORK} /go/bin:$PATH "
116
125
}
117
126
118
- # Ensure that PATH has the desired version of the kind tool .
127
+ # Ensure that we have the desired version of kind.
119
128
install_kind () {
120
- if kind --version 2> /dev/null | grep -q ' ${CSI_PROW_KIND_VERSION}$' ; then
129
+ if kind --version 2> /dev/null | grep -q " ${CSI_PROW_KIND_VERSION} $" ; then
121
130
return
122
131
fi
123
- mkdir -p " ${CSI_PROW_WORK} /bin"
124
132
if curl --fail --location -o " ${CSI_PROW_WORK} /bin/kind" " https://github.com/kubernetes-sigs/kind/releases/download/${CSI_PROW_KIND_VERSION} /kind-linux-amd64" ; then
125
133
chmod u+x " ${CSI_PROW_WORK} /bin/kind"
126
134
else
127
- # Fetching by revision not supported by GitHub (https://github.com/isaacs/github/issues/436).
128
- mkdir -p " $GOPATH /src/sigs.k8s.io"
129
- if [ -d " $GOPATH /src/sigs.k8s.io/kind" ]; then
130
- (cd " $GOPATH /src/sigs.k8s.io/kind" && git fetch origin)
131
- else
132
- git clone https://github.com/kubernetes-sigs/kind " $GOPATH /src/sigs.k8s.io/kind"
133
- fi
134
- (cd " $GOPATH /src/sigs.k8s.io/kind" && git checkout ${CSI_PROW_KIND_VERSION} )
135
+ git_checkout https://github.com/kubernetes-sigs/kind " $GOPATH /src/sigs.k8s.io/kind" " ${CSI_PROW_KIND_VERSION} " --depth=1
135
136
go build -o " ${CSI_PROW_WORK} /bin/kind" sigs.k8s.io/kind
136
137
fi
137
- PATH=" $CSI_PROW_WORK /bin:$PATH "
138
138
}
139
139
140
+ # Ensure that we have the desired version of the ginkgo test runner.
141
+ install_ginkgo () {
142
+ if ginkgo version 2> /dev/null | grep -q " ${CSI_PROW_GINKGO_VERSION} $" ; then
143
+ return
144
+ fi
145
+ git_checkout https://github.com/onsi/ginkgo " $GOPATH /src/github.com/onsi/ginkgo" " ${CSI_PROW_GINKGO_VERSION} " --depth=1
146
+ # We have to get dependencies and hence can't call just "go build".
147
+ go get github.com/onsi/ginkgo/ginkgo || die " building ginkgo failed"
148
+ mv $GOPATH /bin/ginkgo " ${CSI_PROW_BIN} "
149
+ }
140
150
141
151
# This checks out a repo ("https://github.com/kubernetes/kubernetes")
142
152
# in a certain location ("$GOPATH/src/k8s.io/kubernetes") at
@@ -155,8 +165,15 @@ git_checkout () {
155
165
if ! [ -d " $path /.git" ]; then
156
166
git init " $path "
157
167
fi
158
- (cd " $path " && git fetch " $@ " " $repo " " $revision " ) || die " fetching $repo $revision failed"
159
- (cd " $path " && git checkout FETCH_HEAD) || die " checking out $repo $revision failed"
168
+ if (cd " $path " && git fetch " $@ " " $repo " " $revision " ); then
169
+ (cd " $path " && git checkout FETCH_HEAD) || die " checking out $repo $revision failed"
170
+ else
171
+ # Might have been because fetching by revision is not
172
+ # supported by GitHub (https://github.com/isaacs/github/issues/436).
173
+ # Fall back to fetching everything.
174
+ (cd " $path " && git fetch " $@ " " $repo " ' refs/heads/*:refs/remotes/csiprow/heads/*' ' refs/tags/*:refs/tags/*' ) || die " fetching $repo failed"
175
+ (cd " $path " && git checkout " $revision " ) || die " checking out $repo $revision failed"
176
+ fi
160
177
}
161
178
162
179
# Brings up a Kubernetes cluster and sets KUBECONFIG.
0 commit comments