mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
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.
91 lines
2.3 KiB
YAML
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
|