From a7a1c4259e69e0dac8ce7c914c27c9391d764a2f Mon Sep 17 00:00:00 2001 From: Dmitriy Safronov <zimniy@cyberbrain.pw> Date: Thu, 9 Apr 2020 16:25:22 +0300 Subject: [PATCH] Initial --- .gitlab-ci.yml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 9 +++++++ 2 files changed, 76 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..a747a55 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,67 @@ +### PIPELINE DEFINITION +stages: + - build + - test + - release + +variables: + DOCKER_BUILDKIT: 1 + DOCKER_DRIVER: overlay2 + DOCKER_HOST: tcp://localhost:2375 + DOCKER_TLS_CERTDIR: "" + +########################################################################################################## + +### BUILD SECTION +build: + stage: build + image: docker:latest + services: + - docker:dind + variables: + GIT_DEPTH: 1 + DIRECTORY: '.' + before_script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY + script: + - docker build -t "${CI_REGISTRY_IMAGE}:temp-${CI_PIPELINE_IID}" -f "./${DIRECTORY}/Dockerfile" "./${DIRECTORY}" + - docker push "${CI_REGISTRY_IMAGE}:temp-$CI_PIPELINE_IID" + +########################################################################################################## + +### TEST SECTION +test: + stage: test + image: "${CI_REGISTRY_IMAGE}:temp-$CI_PIPELINE_IID" + services: + - docker:dind + variables: + GIT_STRATEGY: "none" + GIT_DEPTH: 0 + script: + - ansible --version + - ansible -m ping localhost + +########################################################################################################## + +### RELEASE SECTION +release: + stage: release + image: docker:latest + services: + - docker:dind + variables: + GIT_STRATEGY: "none" + GIT_DEPTH: 0 + only: + - /^development$/ + - /^staging$/ + - /^master$/ + before_script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY + script: + - export VERSION_OLD=temp-$CI_PIPELINE_IID + - export VERSION_NEW=$CI_COMMIT_REF_SLUG + - test $CI_COMMIT_REF_SLUG = "master" && { export VERSION_NEW=latest; } + - echo "Running [$VERSION_NEW] release from [$VERSION_OLD] build!" + - docker pull $CI_REGISTRY_IMAGE:$VERSION_OLD && ( docker tag $CI_REGISTRY_IMAGE:$VERSION_OLD $CI_REGISTRY_IMAGE:$VERSION_NEW && docker push $CI_REGISTRY_IMAGE:$VERSION_NEW ) || true diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bc864d6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM pipelinecomponents/ansible-lint + +MAINTAINER Dmitriy Safronov <zimniy@cyberbrain.pw> +ENV LANG C.UTF-8 + +ARG DEPENDENCIES_RUNTIME="git" +RUN apk add --no-cache $DEPENDENCIES_RUNTIME + +WORKDIR /opt/ansible -- GitLab