diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..95904c8fdd88eda76daeb2968b8d3a489d4530d6 --- /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 cf8fa74f1c9532fd88b4c3c382486d1f39f33505..809ae11916ff63ad30384d066e99ea197084680d 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 0000000000000000000000000000000000000000..d419ff391477c8ad4484dfb928f7ae930cf54a4f --- /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