mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
With the new Debian stable release, we now support back to Go 1.15. Update the automated tests to reflect this.
103 lines
2.8 KiB
YAML
103 lines
2.8 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.15:
|
|
<<: *golang
|
|
image: golang:1.15 # Version in Debian stable.
|
|
|
|
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
|
|
rules:
|
|
- if: '$CI_REGISTRY_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_COMMIT_REF_NAME -f docker/Dockerfile .
|
|
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
|
|
- |
|
|
if [ $CI_COMMIT_REF_NAME == master ]; then
|
|
docker tag $CI_REGISTRY_IMAGE:master $CI_REGISTRY_IMAGE:latest
|
|
docker push $CI_REGISTRY_IMAGE:latest
|
|
fi
|
|
|
|
# Build docker image, upload to dockerhub registry.
|
|
dockerhub:
|
|
stage: image
|
|
rules:
|
|
- if: '$DOCKER_REGISTRY_USER'
|
|
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_COMMIT_REF_NAME -f docker/Dockerfile .
|
|
- docker push index.docker.io/albertito/chasquid:$CI_COMMIT_REF_NAME
|
|
- |
|
|
if [ $CI_COMMIT_REF_NAME == master ]; then
|
|
docker tag index.docker.io/albertito/chasquid:master index.docker.io/albertito/chasquid:latest
|
|
docker push index.docker.io/albertito/chasquid:latest
|
|
fi
|