From 58d348885bbf77eee852028f1c85eb48180c83e7 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 17 Aug 2017 12:16:24 +0900 Subject: [PATCH] Migrate build steps to shell scripts This should make it a bit easier to test in a development setup. It may also simplify the scripting a little. --- .gitlab-ci.yml | 30 +++--------------------------- build.sh | 18 ++++++++++++++++++ derive.sh | 13 +++++++++++++ migrate.sh | 14 ++++++++++++++ 4 files changed, 48 insertions(+), 27 deletions(-) create mode 100755 build.sh create mode 100755 derive.sh create mode 100755 migrate.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 66ce24d..deada1d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,38 +22,14 @@ before_script: migrate: stage: migrate script: - - docker pull "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" || true - - docker build --build-arg DEBIAN_VERSION="$DEBIAN_VERSION" - --tag "$CI_REGISTRY_IMAGE"/migrated:"$DEBIAN_VERSION" - --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 + - ./migrate.sh build: stage: build script: - - docker pull "$CI_REGISTRY_IMAGE"/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 . | 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" + - ./build.sh derive: stage: derive script: - - 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 + - ./derive.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..8c094d0 --- /dev/null +++ b/build.sh @@ -0,0 +1,18 @@ +#!/bin/sh -Eeuo pipefail +# build.sh -- a bootstrapped image in a migrated Devuan container +# Copyright (C) 2017 Olaf Meeuwissen +# +# License: GPL-3.0+ + +docker pull "$CI_REGISTRY_IMAGE"/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 . | 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" diff --git a/derive.sh b/derive.sh new file mode 100755 index 0000000..7f4b925 --- /dev/null +++ b/derive.sh @@ -0,0 +1,13 @@ +#!/bin/sh -Eeuo pipefail +# derive.sh -- handy Devuan images +# Copyright (C) 2017 Olaf Meeuwissen +# +# 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 diff --git a/migrate.sh b/migrate.sh new file mode 100755 index 0000000..e88d5d4 --- /dev/null +++ b/migrate.sh @@ -0,0 +1,14 @@ +#!/bin/sh -Eeuo pipefail +# migrate.sh -- a Debian image to Devuan +# Copyright (C) 2017 Olaf Meeuwissen +# +# 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" \ + --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