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 push-readme: stage: Docker-hub-pushtag image: name: chko/docker-pushrm entrypoint: ["/bin/sh", "-c", "/docker-pushrm"] variables: PUSHRM_SHORT: Squid PUSHRM_TARGET: docker.io/$DOCKER_HUB_USER/squid PUSHRM_DEBUG: 1 DOCKER_USER: $DOCKER_HUB_USER DOCKER_PASS: $DOCKER_HUB_TOKEN PUSHRM_FILE: $CI_PROJECT_DIR/README.md # entrypoint/script setup is a workaround for a GitLab limitation script: "/bin/true"