|
1 | 1 | machine: |
2 | | - post: |
3 | | - - mkdir -p download |
4 | | - - test -e download/$GODIST || wget -O download/$GODIST https://storage.googleapis.com/golang/$GODIST |
5 | | - - sudo rm -rf /usr/local/go |
6 | | - - sudo tar -C /usr/local -xzf download/$GODIST |
7 | 2 | environment: |
8 | | - GODIST: "go1.6.2.linux-amd64.tar.gz" |
| 3 | + GODIST: "go1.7.3.linux-amd64.tar.gz" |
9 | 4 | GOPATH: "$HOME/.go_workspace" |
10 | 5 | IMPORT_PATH: "github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME" |
11 | 6 | GO_PROJECT_SRC_PATH: "$GOPATH/src/$IMPORT_PATH" |
| 7 | + post: |
| 8 | + - mkdir -p download |
| 9 | + - test -e "download/$GODIST" || wget -O "download/$GODIST" "https://storage.googleapis.com/golang/$GODIST" |
| 10 | + # create custom Go distribution with packages built for darwin-amd64 if it is not present |
| 11 | + - | |
| 12 | + if [ ! -e "download/$GODIST-custom.tgz" ]; then |
| 13 | + sudo rm -rf /usr/local/go && \ |
| 14 | + sudo tar -C /usr/local -xzf "download/$GODIST" && \ |
| 15 | + sudo env GOOS=linux GOARCH=amd64 /usr/local/go/bin/go install std && \ |
| 16 | + sudo env GOOS=darwin GOARCH=amd64 /usr/local/go/bin/go install std && \ |
| 17 | + tar -C /usr/local -czf "download/$GODIST-custom.tgz" go |
| 18 | + fi |
| 19 | + - sudo rm -rf /usr/local/go |
| 20 | + - sudo tar -C /usr/local -xzf "download/$GODIST-custom.tgz" |
12 | 21 |
|
13 | 22 | checkout: |
14 | 23 | post: |
15 | | - # ensure that up-to-date tags are retrieved |
16 | | - - "[[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow" |
17 | | - - git fetch --tags --all --prune |
| 24 | + # ensure all tags are fetched and up-to-date |
| 25 | + - git tag -l | xargs git tag -d && git fetch -t |
18 | 26 |
|
19 | 27 | dependencies: |
20 | | - pre: |
21 | | - # build script |
22 | | - - go get -u -v golang.org/x/tools/go/gcimporter15 |
23 | | - - go get -u -v github.com/kisielk/errcheck |
24 | | - - go get -u -v github.com/mitchellh/gox |
25 | | - - go get -u -v golang.org/x/tools/cmd/cover |
26 | | - - go get -u -v github.com/mattn/goveralls |
27 | | - - go get -u -v github.com/pierrre/gotestcover |
28 | | - - go get -u -v github.com/jstemmer/go-junit-report |
29 | | - - go get -u -v github.com/mdempsky/unconvert |
30 | | - - go get -u -v github.com/remyoudompheng/go-misc/deadcode |
31 | | - - go get -u -v github.com/gordonklaus/ineffassign |
32 | | - - go get -u -v github.com/opennota/check/cmd/varcheck |
33 | | - - go get -u -v github.com/golang/lint/golint |
34 | | - # code |
35 | | - - go get -u -v gopkg.in/yaml.v2 |
36 | 28 | override: |
37 | 29 | - mkdir -p "$GOPATH/src/$IMPORT_PATH" |
38 | 30 | - rsync -az --delete ./ "$GOPATH/src/$IMPORT_PATH/" |
| 31 | + - cd "$GO_PROJECT_SRC_PATH" && ./godelw version |
39 | 32 | cache_directories: |
| 33 | + - ~/.godel |
40 | 34 | - ~/download |
41 | 35 |
|
42 | 36 | test: |
43 | 37 | pre: |
44 | 38 | - go version |
45 | 39 | override: |
46 | | - - test -d "$GO_PROJECT_SRC_PATH" && cd "$GO_PROJECT_SRC_PATH" && make verify |
47 | | - - cp "$GO_PROJECT_SRC_PATH/coverage.out" . |
| 40 | + - cd "$GO_PROJECT_SRC_PATH" && go install $(./godelw packages) |
| 41 | + - mkdir -p "$CIRCLE_TEST_REPORTS/$CIRCLE_PROJECT_REPONAME" |
| 42 | + - cd "$GO_PROJECT_SRC_PATH" && ./godelw verify --apply=false --junit-output="$CIRCLE_TEST_REPORTS/$CIRCLE_PROJECT_REPONAME/$CIRCLE_PROJECT_REPONAME-tests.xml" |
| 43 | + - mkdir -p "$CIRCLE_TEST_REPORTS/$CIRCLE_PROJECT_REPONAME-integration" |
| 44 | + - cd "$GO_PROJECT_SRC_PATH" && ./godelw test --tags=integration --junit-output="$CIRCLE_TEST_REPORTS/$CIRCLE_PROJECT_REPONAME/$CIRCLE_PROJECT_REPONAME-integration.xml" |
| 45 | + - cd "$GO_PROJECT_SRC_PATH" && ./godelw dist |
48 | 46 |
|
49 | 47 | deployment: |
50 | 48 | release: |
51 | 49 | tag: /[0-9]+(\.[0-9]+)+(-rc[0-9]+)?/ |
| 50 | + owner: palantir |
52 | 51 | commands: |
53 | | - - cd "$GO_PROJECT_SRC_PATH" && make build dist publish |
| 52 | + - cd "$GO_PROJECT_SRC_PATH" && ./godelw publish bintray --url https://api.bintray.com --subject palantir --repository releases --user "$BINTRAY_USERNAME" --password "$BINTRAY_PASSWORD" --publish --downloads-list |
0 commit comments