From ca1dbafb9fc8cb7d85f6cb226a791eec498f388a Mon Sep 17 00:00:00 2001 From: Solomon Laing Date: Sun, 6 Jun 2021 11:34:47 +0930 Subject: [PATCH] updated ci/cd, could not get gitlab container registry working so using docker hub instead now --- .gitlab-ci.yml | 64 ++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 09e1d81..f169cc1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,40 +1,38 @@ -.install_docker: &install_docker | - apt-get update - apt-get -y install apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" - apt-get update - apt-get -y install docker-ce - systemctl start docker +image: docker:20.10.5 -# This file is a template, and might need editing before it works on your project. -docker-build: - # Official docker image. - image: docker:20.10.5 +tags: + - docker + +stages: + - build + - push + +before_script: + - echo -n $CI_REGISTRY_TOKEN | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY + +build: stage: build - tags: - - docker - before_script: - - docker info - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . - - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" - except: - - master - -docker-build-master: - # Official docker image. - image: docker:20.10.5 - stage: build - tags: - - docker - before_script: - - docker info - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker pull $CI_REGISTRY_IMAGE:latest || true + - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . + - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + +# Tag the "master" branch as "latest" +push latest: + stage: push script: - - docker build --pull -t "$CI_REGISTRY_IMAGE" . - - docker push "$CI_REGISTRY_IMAGE" + - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest + - docker push $CI_REGISTRY_IMAGE:latest only: - master +# Docker tag any Git tag +push tag: + stage: push + only: + - tags + script: + - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG \ No newline at end of file