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