include: - template: Code-Quality.gitlab-ci.yml variables: DOCKER_VERSION: "19.03.0" workflow: rules: # For merge requests, create a pipeline. - if: '$CI_MERGE_REQUEST_IID' # For `master` branch, create a pipeline (this includes on schedules, pushes, merges, etc.). - if: '$CI_COMMIT_BRANCH == "master"' # For tags, create a pipeline. - if: '$CI_COMMIT_TAG' default: image: golang:1.12 tags: - gitlab-org .use-docker-in-docker: image: docker:${DOCKER_VERSION} services: - docker:${DOCKER_VERSION}-dind variables: DOCKER_DRIVER: overlay2 DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" tags: # See https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/7019 for tag descriptions - gitlab-org-docker .test: before_script: # Set up the environment to run integration tests (still written in Ruby) - apt-get update -qq && apt-get install -y ruby ruby-dev - ruby -v - export PATH=~/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin - gem install --force --bindir /usr/local/bin bundler -v 1.17.2 - bundle install # Now set up to run the Golang tests - make build - cp config.yml.example config.yml - go version - which go script: - make verify test go:1.12: extends: .test image: golang:1.12 go:1.13: extends: .test image: golang:1.13 go:1.14: extends: .test image: golang:1.14 race: extends: .test image: golang:1.14 script: - make test_golang_race code_quality: extends: .use-docker-in-docker artifacts: paths: [codeclimate.json] sast: extends: .use-docker-in-docker allow_failure: true script: - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') - docker run --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}" --volume "$PWD:/code" --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code artifacts: paths: [gl-sast-report.json] dependency_scanning: extends: .use-docker-in-docker allow_failure: true script: - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') - docker run --env DEP_SCAN_DISABLE_REMOTE_CHECKS="${DEP_SCAN_DISABLE_REMOTE_CHECKS:-false}" --volume "$PWD:/code" --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code artifacts: paths: [gl-dependency-scanning-report.json] code_navigation: image: golang:1.14.0 allow_failure: true script: - apt-get update && apt-get install -y ruby-full - go get github.com/sourcegraph/lsif-go/cmd/lsif-go - gem install lsif_parser - lsif-go - lsif_parser dump.lsif $PWD - mv dump.lsif.tmp lsif artifacts: paths: - lsif/