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: - element/* hugo: stage: build tags: - docker script: - cd hugo - make push only: variables: - $CI_COMMIT_REF_PROTECTED == "true" changes: - hugo/* 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