image: registry.gitlab.com/gitlab-org/gitaly/build-ruby-2.3-golang-1.8-git-2.13:latest stages: - build_images - build - test - package - publish verify: stage: test script: - make verify .build_template: &build_definition before_script: # Override gemfile config (for some reasong `config --delete` doesn't do it) - bundle config --local gemfile Gemfile stage: build cache: key: gems paths: - ruby/vendor/bundle script: - make - _support/test-boot-time . .test_template: &test_definition before_script: - bundle config --local gemfile Gemfile stage: test cache: key: gems paths: - ruby/vendor/bundle policy: pull script: - go version - git version - make test build:default: <<: *build_definition test:default: <<: *test_definition test:go1.8-git2.8: <<: *test_definition image: registry.gitlab.com/gitlab-org/gitaly/build-ruby-2.3-golang-1.8-git-2.8:latest cover: stage: test script: - make cover after_script: - bash <(curl -s https://codecov.io/bash) -t "${CODECOV_TOKEN}" -f _build/cover/all.merged -F unittests artifacts: paths: - _build/cover/all.html expire_in: 1 week package: stage: package only: - tags script: - GOOS=linux GOARCH=amd64 make clean package - ls -l # Want to see permissions as they went into the .deb - dpkg -e *.deb - cat DEBIAN/control - cat DEBIAN/md5sums - rm -rf DEBIAN artifacts: paths: - ./*.deb publish: stage: publish only: - tags variables: GIT_STRATEGY: none script: - gem install package_cloud - ls -lh *.deb - shasum -a256 *.deb - package_cloud push $PACKAGECLOUD_REPO *.deb --url=https://packages.gitlab.com allow_failure: true # Create a code quality report codequality: image: docker:latest stage: test variables: DOCKER_DRIVER: overlay services: - docker:dind script: - docker run --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate analyze -f json > codeclimate.json artifacts: paths: [codeclimate.json] expire_in: 1 week allow_failure: true .build_image: &build_image variables: DOCKER_DRIVER: overlay stage: build_images only: - schedules image: docker:latest services: - docker:dind script: - cp ruby/Gemfile ruby/Gemfile.lock _support/build-images/$CI_JOB_NAME/ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com - docker build -t registry.gitlab.com/gitlab-org/gitaly/build-$CI_JOB_NAME:latest _support/build-images/$CI_JOB_NAME/ - docker push registry.gitlab.com/gitlab-org/gitaly/build-$CI_JOB_NAME:latest ruby-2.3-golang-1.8-git-2.8: *build_image ruby-2.3-golang-1.8-git-2.13: *build_image # Create a MR in GitLab-CE when releasing a Gitaly version update-downstream-server-version: stage: publish only: - tags script: - ruby _support/update-downstream-server-version allow_failure: true # Ensure that gitlab-git vendoring from gitlab-ce is functioning test-vendor-gitaly-ruby: stage: test only: - schedules before_script: - DEBIAN_FRONTEND=noninteractive apt-get -q -y install rsync script: - _support/vendor-gitlab-git master - make test