buildx/.gitlab-ci.yml

242 lines
4.0 KiB
YAML

image: docker:stable-git
services:
- docker:stable-dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_CLI_EXPERIMENTAL: enabled
DOCKER_BUILDKIT: 1
element:
stage: build
tags:
- docker
script:
- cd element
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- minio/*
minio:
stage: build
tags:
- docker
script:
- cd minio
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- minio/*
dev-watchdog:
stage: build
tags:
- docker
script:
- cd watchdog
- make nopush
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "false"
changes:
- watchdog/*
watchdog:
stage: build
tags:
- docker
script:
- cd watchdog
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- watchdog/*
dev-unifi:
stage: build
tags:
- docker
script:
- cd unifi
- make nopush
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "false"
changes:
- unifi/*
unifi:
stage: build
tags:
- docker
script:
- cd unifi
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- unifi/*
dev-keycloak:
stage: build
tags:
- docker
script:
- cd keycloak
- make nopush
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "false"
changes:
- keycloak/*
keycloak:
stage: build
tags:
- docker
script:
- cd keycloak
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- keycloak/*
dev-restic:
stage: build
tags:
- docker
script:
- cd restic
- make nopush
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "false"
changes:
- restic/*
restic:
stage: build
tags:
- docker
script:
- cd restic
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- restic/*
pleroma:
stage: build
tags:
- docker
script:
- cd pleroma
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- pleroma/*
dendrite:
stage: build
tags:
- docker
script:
- cd dendrite
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- dendrite/*
roundcubemail:
stage: build
tags:
- docker
script:
- cd roundcubemail
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- roundcubemail/*
borg:
stage: build
tags:
- docker
script:
- cd borg
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- borg/*
shields:
stage: build
tags:
- docker
script:
- cd shields
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- shields/*
synapse:
stage: build
tags:
- docker
script:
- cd synapse
- make push
only:
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
changes:
- synapse/*
.docker_init: &docker_init |
if ! docker info &>/dev/null; then
if [ -z "${DOCKER_HOST}" -a "${KUBERNETES_PORT}" ]; then
export DOCKER_HOST='tcp://localhost:2375'
fi
fi
docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
ls -al /proc/sys/fs/binfmt_misc/
if [ "${CI_COMMIT_REF_PROTECTED}" == "true" ]; then
echo "Log on Docker Hub"
echo "${DOCKER_HUB_KEY}" | docker login -u "alemairebe" --password-stdin
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
fi
mkdir -p /root/.docker/cli-plugins
wget https://github.com/docker/buildx/releases/download/v0.4.2/buildx-v0.4.2.linux-amd64
mv buildx-v0.4.2.linux-amd64 /root/.docker/cli-plugins/docker-buildx
chmod +x /root/.docker/cli-plugins/docker-buildx
before_script:
- *docker_init
- apk add --update make
- docker buildx create --use --platform linux/amd64,linux/arm64,linux/arm,linux/ppc64le
- docker buildx ls