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.
This commit is contained in:
Olaf Meeuwissen 2017-08-17 12:16:24 +09:00
parent 322f6c275e
commit 58d348885b
4 changed files with 48 additions and 27 deletions

View File

@ -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

18
build.sh Executable file
View File

@ -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"

13
derive.sh Executable file
View File

@ -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

14
migrate.sh Executable file
View File

@ -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