From c3b30f9c132aa4d89cd5276b90cb41d9885936f1 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Sat, 19 Aug 2017 14:25:52 +0900 Subject: [PATCH] Refactored CI setup and image naming --- .gitlab-ci.yml | 7 ++++--- build.sh | 31 ++++++++++++++++++++----------- buildd.df => builder.df | 2 +- derive.sh | 22 +++++++++++++++------- migrate.df | 4 ++-- migrate.sh | 18 +++++++++++------- 6 files changed, 53 insertions(+), 31 deletions(-) rename buildd.df => builder.df (84%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index deada1d..c0c8185 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,11 +5,12 @@ variables: DEBIAN_VERSION: jessie-20170723 - DEVUAN_VERSION: jessie + TZ: UTC + LC_ALL: C image: docker:latest services: -- docker:dind + - docker:dind stages: - migrate @@ -17,7 +18,7 @@ stages: - derive before_script: -- docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" registry.gitlab.com + - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY" migrate: stage: migrate diff --git a/build.sh b/build.sh index 75508f9..ac5cb59 100755 --- a/build.sh +++ b/build.sh @@ -4,15 +4,24 @@ # # License: GPL-3.0+ -docker pull "$CI_REGISTRY_IMAGE"/migrated +MIGRATED_IMAGE=$CI_REGISTRY_IMAGE/debian-$DEBIAN_VERSION/migrated + rm -rf rootfs || true -docker run --rm --cap-add SYS_ADMIN \ - --volume $PWD:/devuan --workdir /devuan \ - "$CI_REGISTRY_IMAGE"/migrated ./bootstrap.sh -version="$DEVUAN_VERSION"-$(date +%F) -(tar -cC rootfs --exclude './dev/**' . | docker import - "$CI_REGISTRY_IMAGE":"$version") -docker push "$CI_REGISTRY_IMAGE":"$version" -docker tag "$CI_REGISTRY_IMAGE":"$version" "$CI_REGISTRY_IMAGE":"$DEVUAN_VERSION" -docker push "$CI_REGISTRY_IMAGE":"$DEVUAN_VERSION" -docker tag "$CI_REGISTRY_IMAGE":"$DEVUAN_VERSION" "$CI_REGISTRY_IMAGE" -docker push "$CI_REGISTRY_IMAGE" + +docker pull $MIGRATED_IMAGE +docker run --rm \ + --cap-add SYS_ADMIN \ + --volume $PWD:/devuan \ + --workdir /devuan \ + $MIGRATED_IMAGE ./bootstrap.sh + +IMAGE=$CI_REGISTRY_IMAGE +STAMP=$(date +%F) + +tar -cC rootfs --exclude './dev/**' . | docker import - $IMAGE:$STAMP + +docker push $IMAGE:$STAMP +docker tag $IMAGE:$STAMP $IMAGE:jessie +docker push $IMAGE:jessie +docker tag $IMAGE:jessie $IMAGE +docker push $IMAGE diff --git a/buildd.df b/builder.df similarity index 84% rename from buildd.df rename to builder.df index 399543d..890f59f 100644 --- a/buildd.df +++ b/builder.df @@ -1,4 +1,4 @@ -# buildd.df -- a Devuan image for binary package builds +# builder.df -- a Devuan image for binary package builds # Copyright (C) 2017 Olaf Meeuwissen # # License: GPL-3.0+ diff --git a/derive.sh b/derive.sh index cc577ec..ce6c1b4 100755 --- a/derive.sh +++ b/derive.sh @@ -4,10 +4,18 @@ # # License: GPL-3.0+ -docker build --build-arg DEVUAN_IMAGE="$CI_REGISTRY_IMAGE":"$DEVUAN_VERSION" \ - --tag "$CI_REGISTRY_IMAGE"/buildd:"$DEVUAN_VERSION" \ - --file buildd.df . -docker push "$CI_REGISTRY_IMAGE"/buildd:"$DEVUAN_VERSION" -docker tag "$CI_REGISTRY_IMAGE"/buildd:"$DEVUAN_VERSION" \ - "$CI_REGISTRY_IMAGE"/buildd -docker push "$CI_REGISTRY_IMAGE"/buildd +BASE_IMAGE=$CI_REGISTRY_IMAGE:jessie + +IMAGE=builder +STAMP=$(date +%F) + +docker build \ + --build-arg DEVUAN_IMAGE=$BASE_IMAGE \ + --tag $IMAGE:$STAMP \ + --file $IMAGE.df . + +docker push $IMAGE:$STAMP +docker tag $IMAGE:$STAMP $IMAGE:jessie +docker push $IMAGE:jessie +docker tag $IMAGE:jessie $IMAGE +docker push $IMAGE diff --git a/migrate.df b/migrate.df index aa7b7ea..0cd5c89 100644 --- a/migrate.df +++ b/migrate.df @@ -3,8 +3,8 @@ # # License: GPL-3.0+ -ARG DEBIAN_VERSION -FROM debian:${DEBIAN_VERSION} +ARG VERSION +FROM debian:${VERSION} LABEL maintainer="Olaf Meeuwissen " COPY ./repository@devuan.org.asc /tmp/ diff --git a/migrate.sh b/migrate.sh index cccb011..c222635 100755 --- a/migrate.sh +++ b/migrate.sh @@ -4,11 +4,15 @@ # # License: GPL-3.0+ -docker pull "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" || true -docker build --build-arg DEBIAN_VERSION="$DEBIAN_VERSION" \ - --tag "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" \ +IMAGE=$CI_REGISTRY_IMAGE/debian-$DEBIAN_VERSION/migrated +STAMP=$(date +%F) + +docker pull $IMAGE || true +docker build \ + --build-arg VERSION=$DEBIAN_VERSION \ + --tag $IMAGE:$STAMP \ --file migrate.df . -docker push "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" -docker tag "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" \ - "$CI_REGISTRY_IMAGE"/migrated -docker push "$CI_REGISTRY_IMAGE"/migrated + +docker push $IMAGE:$STAMP +docker tag $IMAGE:$STAMP $IMAGE +docker push $IMAGE