github.com/alloyci/alloy-runner@v1.0.1-0.20180222164613-925503ccafd6/.gitlab-ci.yml (about) 1 stages: 2 - prepare 3 - prebuild 4 - test 5 - build 6 - package 7 - release 8 - cleanup 9 10 variables: 11 CI_IMAGE: registry.gitlab.com/gitlab-org/gitlab-runner/ci:1.8-2 12 GOROOT: /usr/local/go 13 14 image: $CI_IMAGE 15 16 .docker: &docker 17 services: 18 - docker:dind 19 variables: &docker_variables 20 CI_IMAGE: registry.gitlab.com/gitlab-org/gitlab-runner/ci:1.8-2 21 DOCKER_DRIVER: overlay 22 DOCKER_HOST: tcp://docker:2375 23 tags: 24 - docker 25 26 # 27 # Prepare stage 28 # 29 30 .image_builder: &image_builder 31 <<: *docker 32 stage: prepare 33 image: docker:git 34 script: 35 - source ./ci/build_ci_image 36 37 prepare ci image: 38 <<: *image_builder 39 variables: 40 BUILD_IMAGE: $CI_IMAGE 41 BUILD_DOCKERFILE: ./dockerfiles/ci/Dockerfile 42 only: 43 - /\Adocker-ci-image\/.*/ 44 45 prepare alpine-no-root image: 46 <<: *image_builder 47 variables: 48 BUILD_IMAGE: registry.gitlab.com/gitlab-org/gitlab-runner/alpine-no-root:latest 49 BUILD_DOCKERFILE: ./tests/dockerfiles/alpine-no-root/Dockerfile 50 only: 51 - /\Adocker-alpine-no-root-image\/.*/ 52 53 # 54 # Prebuild stage 55 # 56 57 bindata: 58 <<: *docker 59 stage: prebuild 60 script: 61 - make docker 62 artifacts: 63 paths: 64 - out/docker/prebuilt-x86_64.tar.xz 65 - out/docker/prebuilt-arm.tar.xz 66 - executors/docker/bindata.go 67 - .gopath/bin 68 - .gopath/.ok 69 expire_in: 7d 70 71 clone test repo: 72 stage: prebuild 73 script: 74 - mkdir tmp 75 - succeed=0 76 - for i in {1..3}; do git clone https://gitlab.com/gitlab-org/gitlab-test.git tmp/gitlab-test && succeed=1 && break; echo "retrying"; done 77 - '[[ "$succeed" -eq 1 ]]' 78 artifacts: 79 paths: 80 - tmp/gitlab-test 81 expire_in: 7d 82 83 # 84 # Test stage 85 # 86 87 codequality: 88 stage: test 89 image: docker:git 90 services: 91 - docker:dind 92 variables: 93 DOCKER_DRIVER: overlay2 94 CODECLIMATE_FORMAT: json 95 cache: {} 96 dependencies: [] 97 script: 98 - ./scripts/codequality analyze -f json --dev | tee codeclimate.json 99 artifacts: 100 paths: [codeclimate.json] 101 expire_in: 1 week 102 103 unit tests (no race): 104 <<: *docker 105 stage: test 106 script: 107 - source ci/touch_make_dependencies 108 - make test 109 110 unit tests: 111 <<: *docker 112 stage: test 113 allow_failure: true 114 script: 115 - source ci/touch_make_dependencies 116 - CGO_ENABLED=1 TESTFLAGS="-cover -race" make test 117 118 race conditions detector: 119 <<: *docker 120 stage: test 121 script: 122 - source ci/touch_make_dependencies 123 - make check_race_conditions 124 125 git 1.7.1: 126 image: centos:6 127 stage: test 128 variables: 129 GOROOT: /usr/local/go 130 GOPATH: /go 131 CGO_ENABLED: 0 132 OUR_PACKAGES: gitlab.com/gitlab-org/gitlab-runner/executors/shell gitlab.com/gitlab-org/gitlab-runner/shells 133 before_script: 134 - yum install -y -q git && git version 135 - curl https://storage.googleapis.com/golang/go1.8.5.linux-amd64.tar.gz | tar zx -C $(dirname "$GOROOT") 136 - export PATH=${GOROOT}/bin:$PATH 137 - source ci/touch_make_dependencies 138 script: 139 - make test 140 141 # 142 # Build stage 143 # 144 145 .binaries: &binaries 146 stage: build 147 script: 148 - source ci/touch_make_dependencies 149 - export platforms=$(echo $CI_JOB_NAME | sed 's|binaries ||') 150 - make build BUILD_PLATFORMS="-osarch='$platforms'" 151 artifacts: 152 paths: 153 - out/binaries/ 154 expire_in: 7d 155 tags: 156 - docker 157 158 binaries darwin/386 darwin/amd64: *binaries 159 binaries freebsd/386 freebsd/amd64 freebsd/arm: *binaries 160 binaries linux/386 linux/amd64 linux/arm: *binaries 161 binaries windows/386 windows/amd64: *binaries 162 163 # 164 # Package stage 165 # 166 167 .packages: &packages 168 stage: package 169 script: 170 - mkdir -p out/docker 171 - touch out/docker/prebuilt-x86_64.tar.xz 172 - touch out/docker/prebuilt-arm.tar.xz 173 - touch executors/docker/bindata.go 174 - source ci/touch_make_dependencies 175 - make ${CI_JOB_NAME} 176 artifacts: 177 paths: 178 - out/deb/ 179 - out/rpm/ 180 expire_in: 7d 181 tags: 182 - docker 183 184 package-deb: *packages 185 package-rpm: *packages 186 187 # 188 # Release stage 189 # 190 191 .release_docker_images: &release_docker_images 192 <<: *docker 193 stage: release 194 variables: &release_docker_images_variables 195 <<: *docker_variables 196 CI_REGISTRY_IMAGE: "alloyci/alloy-runner" 197 PUBLISH_IMAGES: "true" 198 PUSH_TO_DOCKER_HUB: "true" 199 DOCKER_MACHINE_VERSION: "0.13.0" 200 DOCKER_MACHINE_CHECKSUM: "8f5310eb9e04e71b44c80c0ccebd8a85be56266b4170b4a6ac6223f7b5640df9" 201 DUMB_INIT_VERSION: "1.0.2" 202 DUMB_INIT_CHECKSUM: "a8defac40aaca2ca0896c7c5adbc241af60c7c3df470c1a4c469a860bd805429" 203 script: 204 - source ci/touch_make_dependencies 205 - make release_docker_images 206 tags: 207 - docker 208 209 .release: &release 210 stage: release 211 before_script: 212 - source ci/touch_make_dependencies 213 tags: 214 - docker 215 216 .release_s3: &release_s3 217 <<: *release 218 script: 219 - make release_s3 220 221 .release_packagecloud: &release_packagecloud 222 <<: *release 223 script: 224 - make release_packagecloud 225 226 .release_bleeding_edge: &release_bleeding_edge 227 only: 228 - master 229 230 .release_stable: &release_stable 231 only: 232 - /\Av[0-9]+\.[0-9]+\.[0-9]+\Z/ 233 234 bleeding edge S3: 235 <<: *release_s3 236 <<: *release_bleeding_edge 237 environment: 238 name: bleeding_edge/s3 239 url: https://alloyci-runner-downloads.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html 240 241 bleeding edge packagecloud: 242 <<: *release_packagecloud 243 <<: *release_bleeding_edge 244 variables: 245 PACKAGE_CLOUD: alloyci/alloy-runner-unstable 246 environment: 247 name: bleeding_edge/packagecloud 248 url: https://packagecloud.io/alloyci/alloy-runner-unstable 249 250 bleeding edge docker images: 251 <<: *release_docker_images 252 <<: *release_bleeding_edge 253 environment: 254 name: bleeding_edge/docker_images 255 url: https://hub.docker.com/r/alloyci/alloy-runner/tags/ 256 257 stable S3: 258 <<: *release_s3 259 <<: *release_stable 260 environment: 261 name: stable/s3 262 url: https://alloyci-runner-downloads.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html 263 264 stable packagecloud: 265 <<: *release_packagecloud 266 <<: *release_stable 267 variables: 268 PACKAGE_CLOUD: alloyci/alloy-runner 269 environment: 270 name: stable/packagecloud 271 url: https://packagecloud.io/alloyci/alloy-runner 272 273 stable docker images: 274 <<: *release_docker_images 275 <<: *release_stable 276 environment: 277 name: stable/docker_images 278 url: https://hub.docker.com/r/alloyci/alloy-runner/tags/