86 lines
2.7 KiB
YAML
86 lines
2.7 KiB
YAML
variables:
|
|
CONTAINER_CLIENT_IMAGE: debian:latest
|
|
CONTAINER_TEST_NAME: squid
|
|
CONTAINER_BUILD_NOPROD_NAME_AMD64: $HUB_REGISTRY_IMAGE:build-noprod-amd64
|
|
SQUID_VERSION: '"$SQUID_VERSION"'
|
|
|
|
docker-hub-build:
|
|
stage: Docker-hub-build
|
|
image: docker:dind
|
|
artifacts:
|
|
expire_in: 2 days
|
|
timeout: 3 hours 30 minutes
|
|
before_script:
|
|
- docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_TOKEN" $DOCKER_HUB_REGISTRY
|
|
script:
|
|
- cd $CI_PROJECT_DIR
|
|
- apk add --no-cache curl
|
|
- export SQUID_VERSION=$(curl -s http://www.squid-cache.org/Versions/v5/ | egrep -m 1 -oh squid-.*.tar.gz | cut -d '"' -f1)
|
|
- docker build --build-arg SQUID_VERSION=$SQUID_VERSION --pull -t $CONTAINER_BUILD_NOPROD_NAME_AMD64 .
|
|
- docker push $CONTAINER_BUILD_NOPROD_NAME_AMD64
|
|
|
|
.services-amd64:
|
|
services:
|
|
- name: $CONTAINER_BUILD_NOPROD_NAME_AMD64
|
|
alias: squid
|
|
image: $CONTAINER_CLIENT_IMAGE
|
|
|
|
docker-hub-test:
|
|
stage: Docker-hub-test
|
|
extends: .services-amd64
|
|
script:
|
|
- apt update && apt install -y curl
|
|
- export https_proxy=http://$CONTAINER_TEST_NAME:3128 && curl -k https://www.google.fr
|
|
variables:
|
|
HOSTNAME: squidpipeline
|
|
needs: ["docker-hub-build"]
|
|
|
|
dive:
|
|
image:
|
|
name: wagoodman/dive:latest
|
|
entrypoint: [""]
|
|
dependencies: []
|
|
stage: Docker-hub-test
|
|
script:
|
|
- docker pull $CONTAINER_BUILD_NOPROD_NAME_AMD64
|
|
- dive $CONTAINER_BUILD_NOPROD_NAME_AMD64
|
|
variables:
|
|
CI: "true"
|
|
|
|
push-docker-hub:
|
|
stage: Docker-hub-pushtag
|
|
image: docker:dind
|
|
before_script:
|
|
- docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_TOKEN" $DOCKER_HUB_REGISTRY
|
|
script:
|
|
- apk add --no-cache curl
|
|
- docker pull $CONTAINER_BUILD_NOPROD_NAME_AMD64
|
|
- export SQUID_VERSION=$(curl -s http://www.squid-cache.org/Versions/v5/ | egrep -m 1 -oh squid-.*.tar.gz | cut -d '"' -f1 | sed 's/\.tar\.gz//g')
|
|
- docker tag $CONTAINER_BUILD_NOPROD_NAME_AMD64 $HUB_REGISTRY_IMAGE:$SQUID_VERSION-amd64
|
|
- docker push $HUB_REGISTRY_IMAGE:$SQUID_VERSION-amd64
|
|
- docker tag $CONTAINER_BUILD_NOPROD_NAME_AMD64 $HUB_REGISTRY_IMAGE:latest-amd64
|
|
- docker push $HUB_REGISTRY_IMAGE:latest-amd64
|
|
- docker tag $CONTAINER_BUILD_NOPROD_NAME_AMD64 $HUB_REGISTRY_IMAGE:latest
|
|
- docker push $HUB_REGISTRY_IMAGE:latest
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
needs: ["docker-hub-test"]
|
|
only:
|
|
- master
|
|
|
|
pushrm:
|
|
stage: Docker-hub-pushtag
|
|
image:
|
|
name: chko/docker-pushrm
|
|
entrypoint: ["/bin/sh", "-c", "/docker-pushrm"]
|
|
variables:
|
|
DOCKER_USER: $DOCKER_HUB_USER
|
|
DOCKER_PASS: $DOCKER_HUB_TOKEN
|
|
PUSHRM_SHORT: Squid
|
|
PUSHRM_TARGET: docker.io/$DOCKER_USER/squid
|
|
PUSHRM_DEBUG: 1
|
|
PUSHRM_FILE: $CI_PROJECT_DIR/README.md
|
|
# entrypoint/script setup is a workaround for a GitLab limitation
|
|
script: "/bin/true"
|
|
|