diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..9ed1a0e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,36 @@ +image: docker:git +services: +- docker:dind + +stages: +- build +- test +- release + +variables: + TEST_IMAGE: registry.gitlab.com/$CI_PROJECT_NAMESPACE/${CI_PROJECT_NAME}:$CI_BUILD_REF_NAME + RELEASE_IMAGE: registry.gitlab.com/$CI_PROJECT_NAMESPACE/${CI_PROJECT_NAME}:latest + +before_script: + - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com + +build: + stage: build + script: + - docker build -t $TEST_IMAGE . + - docker push $TEST_IMAGE + +test: + stage: test + script: + - docker run $TEST_IMAGE /test + +release: + stage: release + script: + - docker pull $TEST_IMAGE + - docker tag $TEST_IMAGE $RELEASE_IMAGE + - docker push $RELEASE_IMAGE + only: + - master + - tags diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1563378 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +from debian:sid-slim +MAINTAINER hans@eds.org + +ENV LANG=C.UTF-8 \ + DEBIAN_FRONTEND=noninteractive + +# install the minimum needed for a standard git-buildpackage build +# that includes pristine-tar. This also does not install +# documentation to keep the image small. +RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \ + && apt-get update \ + && apt-get -y upgrade \ + && apt-get -y dist-upgrade \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dpkg-dev \ + fakeroot \ + git \ + git-buildpackage \ + pristine-tar \ + && apt-get -y autoremove --purge \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +COPY test / + diff --git a/test b/test new file mode 100755 index 0000000..5f486d8 --- /dev/null +++ b/test @@ -0,0 +1,3 @@ +#!/bin/bash + +gbp --version