1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-17 14:37:02 +00:00
Files
go-chasquid-smtp/.gitlab-ci.yml
Alberto Bertogli a9d7e36d29 gitlab: Export test directory as an artifact
To debug test failures, it can be convenient to explore the contents of
the test directories after the test runs, as they contain logs and
generated files.

This patch configures the GitLab CI to export the repo tree (which
includes the test directory) as GitLab CI artifacts, so they can be
easily accessed after the tests have completed.
2020-11-13 20:49:42 +00:00

91 lines
2.3 KiB
YAML

stages:
- test
- image
# Go tests, on various Go versions.
.golang_template: &golang
stage: test
before_script:
- useradd --create-home --user-group testing
- chown -R testing:testing $GOPATH/ .
script:
- su testing -c "go mod download"
- su testing -c "go get ./..."
- su testing -c "make all"
- su testing -c "go test ./..."
- su testing -c "go test -race ./..."
golang_1.11:
<<: *golang
image: golang:1.11 # Version in Debian stable.
variables:
GO111MODULE: "on"
golang_latest:
<<: *golang
image: golang:latest
# Integration test, using the module versions from the repository.
integration_stable:
stage: test
image: docker:stable
services:
- docker:dind
script:
- docker info
- docker build -t chasquid-test -f test/Dockerfile .
- docker run chasquid-test env
- docker run --name test1 chasquid-test make test
after_script:
- docker cp test1:/go/src/blitiri.com.ar/go/chasquid docker-out/
artifacts:
when: always
expire_in: 1 hour
paths:
- docker-out/
# Integration test, using the latest module versions.
integration_latest:
stage: test
image: docker:stable
services:
- docker:dind
script:
- docker info
- docker build -t chasquid-test --build-arg GO_GET_ARGS="-u=patch" -f test/Dockerfile .
- docker run chasquid-test env
- docker run --name test1 chasquid-test make test
after_script:
- docker cp test1:/go/src/blitiri.com.ar/go/chasquid docker-out/
artifacts:
when: always
expire_in: 1 hour
paths:
- docker-out/
# Build docker image, upload to gitlab registry.
gitlab:
stage: image
image: docker:stable
services:
- docker:dind
script:
- docker info
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME -f docker/Dockerfile .
- docker push $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME
# Build docker image, upload to dockerhub registry.
dockerhub:
stage: image
image: docker:stable
services:
- docker:dind
script:
- docker info
- docker login -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASSWORD docker.io
- docker build -t index.docker.io/albertito/chasquid:$CI_BUILD_REF_NAME -f docker/Dockerfile .
- docker push index.docker.io/albertito/chasquid:$CI_BUILD_REF_NAME