github.com/gochain-io/gochain@v2.2.26+incompatible/.circleci/config.yml (about) 1 version: 2.0 2 3 defaults: &defaults 4 working_directory: /go/src/github.com/gochain-io/gochain 5 docker: 6 - image: circleci/golang:1.11.2 7 environment: # apparently expansion doesn't work here yet: https://discuss.circleci.com/t/environment-variable-expansion-in-working-directory/11322 8 - OS=linux 9 - ARCH=amd64 10 - GOCACHE=/tmp/go/cache 11 12 jobs: 13 prepare: 14 <<: *defaults 15 steps: 16 - checkout 17 - run: 18 name: install dependencies 19 command: | 20 go get -u github.com/golang/dep/cmd/dep 21 dep ensure --vendor-only 22 - persist_to_workspace: 23 root: . 24 paths: 25 - . 26 build: 27 <<: *defaults 28 steps: 29 - restore_cache: 30 keys: 31 - build-cache-{{ .Branch }}-{{ .Environment.CIRCLE_PREVIOUS_BUILD_NUM }} 32 - build-cache-{{ .Branch }}- 33 - build-cache- 34 paths: 35 - /tmp/go/cache 36 - attach_workspace: 37 at: . 38 - run: make all 39 - save_cache: 40 key: build-cache-{{ .Branch }}-{{ .Environment.CIRCLE_BUILD_NUM }} 41 paths: 42 - /tmp/go/cache 43 44 test: 45 <<: *defaults 46 steps: 47 - restore_cache: 48 keys: 49 - test-cache-{{ .Branch }}-{{ .Environment.CIRCLE_PREVIOUS_BUILD_NUM }} 50 - test-cache-{{ .Branch }}- 51 - test-cache- 52 paths: 53 - /tmp/go/cache 54 - attach_workspace: 55 at: . 56 - run: go test -p=8 $(go list ./... | grep -v /swarm/fuse) 57 - save_cache: 58 key: test-cache-{{ .Branch }}-{{ .Environment.CIRCLE_BUILD_NUM }} 59 paths: 60 - /tmp/go/cache 61 62 # Separate since fuse is not supported via containers. 63 test-fuse: 64 machine: true 65 working_directory: ~/go/src/github.com/gochain-io/gochain 66 environment: # apparently expansion doesn't work here yet: https://discuss.circleci.com/t/environment-variable-expansion-in-working-directory/11322 67 - GOPATH=/home/circleci/go 68 - GOVERSION=1.11.2 69 - OS=linux 70 - ARCH=amd64 71 steps: 72 - restore_cache: 73 keys: 74 - test-fuse-cache-{{ .Branch }}-{{ .Environment.CIRCLE_PREVIOUS_BUILD_NUM }} 75 - test-fuse-cache-{{ .Branch }}- 76 - test-fuse-cache- 77 paths: 78 - /tmp/go/cache 79 - checkout 80 - run: 81 name: update Go 82 command: | 83 go version 84 go env GOROOT 85 mkdir tmp 86 cd tmp 87 sudo rm -rf /usr/local/go 88 wget https://storage.googleapis.com/golang/go$GOVERSION.$OS-$ARCH.tar.gz 89 sudo tar -C /usr/local -xzf go$GOVERSION.$OS-$ARCH.tar.gz 90 export PATH=$PATH:$HOME/go/bin 91 - run: go version 92 - run: 93 name: install dependencies 94 command: | 95 go get -u github.com/golang/dep/cmd/dep 96 ${GOPATH}/bin/dep ensure --vendor-only 97 - run: make all 98 - run: go test ./swarm/fuse 99 - save_cache: 100 key: test-fuse-cache-{{ .Branch }}-{{ .Environment.CIRCLE_BUILD_NUM }} 101 paths: 102 - /tmp/go/cache 103 104 race: 105 <<: *defaults 106 steps: 107 - restore_cache: 108 keys: 109 - race-cache-{{ .Branch }}-{{ .Environment.CIRCLE_PREVIOUS_BUILD_NUM }} 110 - race-cache-{{ .Branch }}- 111 - race-cache- 112 paths: 113 - /tmp/go/cache 114 - attach_workspace: 115 at: . 116 - run: go test -race ./core/... 117 - save_cache: 118 key: race-cache-{{ .Branch }}-{{ .Environment.CIRCLE_BUILD_NUM }} 119 paths: 120 - /tmp/go/cache 121 122 release-master: 123 <<: *defaults 124 steps: 125 - setup_remote_docker: 126 docker_layer_caching: true 127 - attach_workspace: 128 at: . 129 - run: 130 name: install dependencies 131 command: | 132 wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-204.0.0-linux-x86_64.tar.gz --directory-prefix=tmp 133 tar -xvzf tmp/google-cloud-sdk-204.0.0-linux-x86_64.tar.gz -C tmp 134 ./tmp/google-cloud-sdk/install.sh -q 135 - run: 136 name: add github ssh 137 command: | 138 echo ' 139 github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 140 ' >> ~/.ssh/known_hosts 141 - deploy: 142 command: | 143 if [[ "${CIRCLE_BRANCH}" == "master" && -z "${CIRCLE_PR_REPONAME}" ]]; then 144 git config --global user.email "ci@gochain.io" 145 git config --global user.name "CI" 146 git branch --set-upstream-to=origin/${CIRCLE_BRANCH} ${CIRCLE_BRANCH} 147 echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin 148 echo $GOOGLE_AUTH > ${HOME}/gcloud-service-key.json 149 echo $GOOGLE_AUTH | docker login -u _json_key --password-stdin https://gcr.io 150 ./release.sh 151 fi 152 153 docker: 154 <<: *defaults 155 steps: 156 - setup_remote_docker: 157 docker_layer_caching: true 158 - attach_workspace: 159 at: . 160 - run: 161 name: install dependencies 162 command: | 163 wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-204.0.0-linux-x86_64.tar.gz --directory-prefix=tmp 164 tar -xvzf tmp/google-cloud-sdk-204.0.0-linux-x86_64.tar.gz -C tmp 165 ./tmp/google-cloud-sdk/install.sh -q 166 - deploy: 167 command: | 168 echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin 169 docker build . -t gochain/gochain:${CIRCLE_BRANCH} 170 docker push gochain/gochain:${CIRCLE_BRANCH} 171 echo $GOOGLE_AUTH > ${HOME}/gcloud-service-key.json 172 echo $GOOGLE_AUTH | docker login -u _json_key --password-stdin https://gcr.io 173 ./tmp/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json 174 docker tag gochain/gochain:${CIRCLE_BRANCH} gcr.io/gochain-core/gochain:${CIRCLE_BRANCH} 175 docker push gcr.io/gochain-core/gochain:${CIRCLE_BRANCH} 176 177 workflows: 178 version: 2 179 prepare-accept-deploy: 180 jobs: 181 - prepare 182 - build: 183 requires: 184 - prepare 185 186 - test: 187 requires: 188 - prepare 189 - test-fuse: 190 requires: 191 - prepare 192 - race: 193 requires: 194 - prepare 195 196 - release-master: 197 filters: 198 branches: 199 only: master 200 requires: 201 - build 202 - test 203 - test-fuse 204 - race 205 206 - approve-docker: 207 type: approval 208 filters: 209 branches: 210 ignore: 211 - master 212 - stable 213 - testnet 214 - latest 215 requires: 216 - test 217 - build 218 - test-fuse 219 - race 220 221 - docker: 222 requires: 223 - approve-docker