redspread / spread

Docker to Kubernetes in one command
https://coreos.com
Apache License 2.0
1.84k stars 83 forks source link

CI allows builds containing code that is not gofmt-ed #135

Closed ethernetdan closed 8 years ago

ethernetdan commented 8 years ago

Investigate why these builds are allowed

zoidyzoidzoid commented 8 years ago

So when looking at the last build for the repo that included code that includes not gofmt-ed code, in Line 242 onwards of the build:

$ make validate
for pkg in ./pkg/... ./cli/... ./cmd/...; do \
        echo "Running golint on $i:"; \
        golint $i; \
    done;
Running golint on :
Running golint on :
Running golint on :
# get all go files and run go fmt on them
files=$(find . -name '*.go' -not -path "./vendor/*" | xargs gofmt  -l); if [[ -n "$files" ]]; then \
          echo "Error: 'gofmt ' needs to be run on:"; \
          echo "${files}"; \
          exit 1; \
          fi;
/bin/sh: 1: [[: not found
go vet ./pkg/... ./cli/... ./cmd/... 

It looks like travis doesn't care about the exit code of the before_script, and there are some issues with it running make validate.

I think it's because dash/sh don't support [[.

The Travis CI docs say before_script exiting with a non-zero code will error the build, but it doesn't seem to be, so [[ not found must exit with a zero exit code.

Taking a look.