From 65b219c79baaedc8ffa7d683dc2330d48d977c12 Mon Sep 17 00:00:00 2001 From: Sheogorath <sheogorath@shivering-isles.com> Date: Thu, 28 Mar 2019 11:02:00 +0100 Subject: [PATCH] Add CI chain and image deployment --- .gitlab-ci.yml | 33 +++++++++++++++++++++++++++++++++ Dockerfile | 4 +++- tools/tagging.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 .gitlab-ci.yml create mode 100755 tools/tagging.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..95904c8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,33 @@ +image: quay.io/sheogorath/ubuntu-ci:18.04 + +services: + - docker:dind + +before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + +build-master: + stage: build + variables: + DOCKER_HOST: "tcp://docker:2375" + DOH_VERSION: "2.0.1" + script: + - docker build --pull --build-arg VERSION="$DOH_VERSION" -t "doh:testing" . + - ./tools/tagging.sh "$CI_REGISTRY_IMAGE" "${DOH_VERSION:-latest}" "" + - docker images --format "{{.Repository}}:{{.Tag}}" "$CI_REGISTRY_IMAGE" | xargs -L 1 docker push + only: + - master + tags: + - docker + +build: + stage: build + variables: + DOCKER_HOST: "tcp://docker:2375" + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" + except: + - master + tags: + - docker diff --git a/Dockerfile b/Dockerfile index cf8fa74..809ae11 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ FROM golang +ARG VERSION=master + RUN true \ - && git clone https://github.com/m13253/dns-over-https.git \ + && git clone https://github.com/m13253/dns-over-https.git --depth 1 -b "$VERSION" \ && cd dns-over-https \ && make \ && true diff --git a/tools/tagging.sh b/tools/tagging.sh new file mode 100755 index 0000000..d419ff3 --- /dev/null +++ b/tools/tagging.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +if [ "$1" = "--help" ]; then + echo " + Usage of $0: + $0 <PREFIX> <VERSION> <SUFFIX> + + Example: + $0 doh 2.0.24 alpine + " +fi + +PREFIX=${1:-doh} +VERSION=${2} +[ "${3}" != "" ] && [ "${3}" != "debian" ] && SUFFIX="-${3}" + + + +if [ "$VERSION" != "" ]; then + docker tag doh:testing "$PREFIX:$(echo "${VERSION}" | sed -e 's/^v//' | cut -d. -f1)${SUFFIX}" + docker tag doh:testing "$PREFIX:$(echo "${VERSION}" | sed -e 's/^v//' | cut -d. -f1-2)${SUFFIX}" + docker tag doh:testing "$PREFIX:$(echo "${VERSION}" | sed -e 's/^v//' | cut -d. -f1-3)${SUFFIX}" + docker tag doh:testing "$PREFIX:$(echo "${VERSION}" | sed -e 's/^v//' | cut -d. -f1-4)${SUFFIX}" + [ "$SUFFIX" = "" ] && docker tag doh:testing "$PREFIX:latest" +else + echo "No version provided. Skipping tagging..." +fi -- GitLab