stages: - test - publish variables: DOCKER_TLS_CERTDIR: "" default: image: golang:1.14 .test_setup: &test_setup - mkdir -p /go/src/gitlab.switch.ch/${CI_PROJECT_NAMESPACE} - ln -s $CI_PROJECT_DIR /go/src/gitlab.switch.ch/memoriav/memobase-2020/services/histogram - cd /go/src/gitlab.switch.ch/memoriav/memobase-2020/services/histogram .test:lint: stage: test tags: [mbr] before_script: - *test_setup - go get -u golang.org/x/lint/golint script: - golint -set_exit_status $BIN_PATH allow_failure: true .test:unit: stage: test tags: [mbr] before_script: [*test_setup] script: - go test -short $BIN_PATH allow_failure: true .test:race: stage: test tags: [mbr] before_script: [*test_setup] script: - go test -race -short $BIN_PATH allow_failure: true #test:msan: # stage: test # tags: [mbr] # before_script: [*test_setup] # script: # - go test -msan -short $BIN_PATH # allow_failure: true .test:build: stage: test tags: [mbr] before_script: [*test_setup] script: - go build $BIN_PATH histogram:test:lint: extends: .test:lint variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/histogram/cmd/histogram histogram:test:unit: extends: .test:unit variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/histogram/cmd/histogram histogram:test:race: extends: .test:race variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/histogram/cmd/histogram histogram:test:build: extends: .test:build variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/histogram/cmd/histogram webservice:test:lint: extends: .test:lint variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/webservice/cmd/webservice webservice:test:unit: extends: .test:unit variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/webservice/cmd/webservice webservice:test:race: extends: .test:race variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/webservice/cmd/webservice webservice:test:build: extends: .test:build variables: BIN_PATH: gitlab.switch.ch/memoriav/memobase-2020/services/webservice/cmd/webservice .build-image: stage: publish image: docker:stable services: - docker:dind before_script: - apk update && apk add curl script: - 'curl --location --output ffprobe --header "PRIVATE-TOKEN: $API_ACCESS_TOKEN" "https://gitlab.switch.ch/api/v4/projects/937/jobs/artifacts/master/raw/ffmpeg_build/bin/ffprobe?job=snapshot"' - 'curl --location --output convert --header "PRIVATE-TOKEN: $API_ACCESS_TOKEN" "https://gitlab.switch.ch/api/v4/projects/939/jobs/artifacts/master/raw/im_build/bin/convert?job=v6_9_11"' - 'curl --location --output identify --header "PRIVATE-TOKEN: $API_ACCESS_TOKEN" "https://gitlab.switch.ch/api/v4/projects/939/jobs/artifacts/master/raw/im_build/bin/identify?job=v6_9_11"' - docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" "$REGISTRY" - docker build --pull -t "$IMAGE_TAG" -f "$DOCKERFILE" . - docker push "$IMAGE_TAG" - docker logout indexerhelper:build-tagged-image: extends: .build-image variables: IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" REGISTRY_PASSWORD: "$CI_REGISTRY_PASSWORD" REGISTRY_USER: "$CI_REGISTRY_USER" REGISTRY: "$CI_REGISTRY" DOCKERFILE: "Dockerfile" only: - tags indexerhelper:build-latest-image: extends: .build-image variables: IMAGE_TAG: "$CI_REGISTRY_IMAGE:latest" REGISTRY_PASSWORD: "$CI_REGISTRY_PASSWORD" REGISTRY_USER: "$CI_REGISTRY_USER" REGISTRY: "$CI_REGISTRY" DOCKERFILE: "Dockerfile" only: - master indexerhelper:build-feature-branch-image: extends: .build-image variables: IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" REGISTRY_PASSWORD: "$CI_REGISTRY_PASSWORD" REGISTRY_USER: "$CI_REGISTRY_USER" REGISTRY: "$CI_REGISTRY" DOCKERFILE: "Dockerfile.small" except: - master - tags