# .gitlab-ci.yml -- to automate Docker Devuan image builds # Copyright (C) 2017 Olaf Meeuwissen # # License: GPL-3.0+ variables: DEBIAN_VERSION: jessie-20170723 DEVUAN_VERSION: jessie image: docker:latest services: - docker:dind stages: - migrate - build - derive before_script: - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" registry.gitlab.com 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 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" 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