From 67f15c17e66b6d7bbbfcae0fabeb5f112363bb68 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 20 Mar 2021 13:34:56 -0500 Subject: [PATCH] Add a GitLab CI --- .gitlab-ci.yml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2939c7d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,59 @@ +# +# This guy is awesome: https://dev.to/bzinoun/gitlab-ci-to-build-and-push-containers-to-registry-538a +# + +image: docker:latest +variables: + # DinD's vfs driver is pretty intensive; this is less so + DOCKER_DRIVER: overlay2 + CI_HUB_USERNAME: rehashedsalt +stages: + - build + - push +services: + - docker:dind +before_script: + - echo -n "$CI_LOGIN_PASSWORD" | docker login -u "$CI_LOGIN_USERNAME" --password-stdin + - docker version + - docker info +after_script: + - docker logout hub.docker.com + +Build: + stage: build + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest || true + - > + docker build + --pull + --cache-from $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest + --tag $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + . + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + +Push_When_Tag: + stage: push + only: + - tags + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest + +Push_Latest: + stage: push + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:bleeding + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME