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/