Cirrus: Fix gate image & false-positive exits

A number of scripts relating to tooling used and the gate container
image were not exiting upon errors as intended.  Coupled with
external service unavailability (i.e. downloading golangci-lint)
was observed to cause difficult to debug failures.

This change corrects the scripts inside/out of the gate container as
well as fixes many golang related path consistency problems vs other CI
jobs.  After this change, all jobs use consistent path names reducing
the number of special-case overrides needed.

Lastly, I also made a documentation-pass, updating/correcting as needed,
including documenting a likely local validation-failure mode, related to
`$EPOCH_TEST_COMMIT`.  This is dependent on the developers git
environment, so documentation is the only possible "fix".

Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
Chris Evich
2020-01-31 12:50:27 -05:00
parent 275e9b855d
commit d0782e7839
9 changed files with 118 additions and 59 deletions

View File

@ -1,17 +1,17 @@
#!/bin/bash
if [ -z "$VERSION" ]; then
echo \$VERSION is empty
exit 1
fi
set -e
if [ -z "$GOBIN" ]; then
echo \$GOBIN is empty
exit 1
fi
die() { echo "${1:-No error message given} (from $(basename $0))"; exit 1; }
$GOBIN/golangci-lint --version | grep $VERSION
if [ $? -ne 0 ]; then
set -e
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $GOBIN v$VERSION
[ -n "$VERSION" ] || die "\$VERSION is empty or undefined"
[ -n "$GOBIN" ] || die "\$GOBIN is empty or undefined"
BIN="$GOBIN/golangci-lint"
if [ ! -x "$BIN" ]; then
echo "Installing golangci-lint v$VERSION into $GOBIN"
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $GOBIN v$VERSION
else
# Prints it's own file name as part of --verison output
echo "Using existing $(dirname $BIN)/$($BIN --version)"
fi