From a32d77db32782c737800883e0b26c1349f133ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Molinero=20Fern=C3=A1ndez?= Date: Sun, 15 Sep 2019 10:26:11 +0200 Subject: [PATCH] Updated GitLab CI --- .gitlab-ci.yml | 154 ++++++++++++++++++++++++------------------------- 1 file changed, 74 insertions(+), 80 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f413eb1..512d485 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,137 +1,131 @@ -image: "docker.io/docker:stable" - -services: - - "docker:dind" - stages: - "build:images" - "push:images" - "push:manifests" variables: - DOCKER_HOST: "tcp://docker:2375" + DOCKER_HOST: "tcp://dockerd:2376" + DOCKER_TLS_SAN: "DNS:dockerd" + DOCKER_TLS_CERTDIR: "/certs" DOCKER_DRIVER: "overlay2" -build:native-image: +default: + image: "docker.io/docker:stable" + services: + - name: "docker.io/docker:dind" + alias: "dockerd" + +.cmds: + - &cmd_install_build_packages "apk add --no-cache coreutils git m4 make xz" + - &cmd_install_push_packages "apk add --no-cache coreutils git make xz" + - &cmd_docker_login_registry "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\"" + +.regexes: + - ®ex_version "/^v[0-9]+$/" + +build:images:native: stage: "build:images" + except: + - *regex_version before_script: - - "docker info" - - "apk add --no-cache coreutils git m4 make xz" + - *cmd_install_build_packages script: - "make build-native-image save-native-image" - except: - - "tags" artifacts: expire_in: "1 day" paths: - - "dist/" + - "./dist/" -build:amd64-image: +build:images:amd64: stage: "build:images" + only: + - *regex_version before_script: - - "docker info" - - "apk add --no-cache coreutils git m4 make xz" - - "make binfmt-register" + - *cmd_install_build_packages script: + - "make binfmt-register" - "make build-amd64-image save-amd64-image" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" artifacts: expire_in: "1 week" paths: - - "dist/" + - "./dist/" -build:arm32v7-image: +build:images:arm32v7: stage: "build:images" + only: + - *regex_version before_script: - - "docker info" - - "apk add --no-cache coreutils git m4 make xz" - - "make binfmt-register" + - *cmd_install_build_packages script: + - "make binfmt-register" - "make build-arm32v7-image save-arm32v7-image" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" artifacts: expire_in: "1 week" paths: - - "dist/" + - "./dist/" -build:arm64v8-image: +build:images:arm64v8: stage: "build:images" - before_script: - - "docker info" - - "apk add --no-cache coreutils git m4 make xz" - - "make binfmt-register" - script: - - "make build-arm64v8-image save-arm64v8-image" only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" + - *regex_version + before_script: + - *cmd_install_build_packages + script: + - "make binfmt-register" + - "make build-arm64v8-image save-arm64v8-image" artifacts: expire_in: "1 week" paths: - - "dist/" + - "./dist/" -push:amd64-image: +push:images:amd64: stage: "push:images" + dependencies: + - "build:images:amd64" + only: + - *regex_version before_script: - - "apk add --no-cache coreutils git make xz" - - "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1" + - *cmd_install_push_packages + - *cmd_docker_login_registry script: - "make load-amd64-image push-amd64-image" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" - dependencies: - - "build:amd64-image" -push:arm32v7-image: +push:images:arm32v7: stage: "push:images" + dependencies: + - "build:images:arm32v7" + only: + - *regex_version before_script: - - "apk add --no-cache coreutils git make xz" - - "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1" + - *cmd_install_push_packages + - *cmd_docker_login_registry script: - "make load-arm32v7-image push-arm32v7-image" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" - dependencies: - - "build:arm32v7-image" -push:arm64v8-image: +push:images:arm64v8: stage: "push:images" + dependencies: + - "build:images:arm64v8" + only: + - *regex_version before_script: - - "apk add --no-cache coreutils git make xz" - - "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1" + - *cmd_install_push_packages + - *cmd_docker_login_registry script: - "make load-arm64v8-image push-arm64v8-image" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" - dependencies: - - "build:arm64v8-image" -push:cross-manifest: +push:manifests:cross: stage: "push:manifests" + dependencies: + - "push:images:amd64" + - "push:images:arm32v7" + - "push:images:arm64v8" + only: + - *regex_version + variables: + DOCKER_CLI_EXPERIMENTAL: "enabled" before_script: - - "apk add --no-cache coreutils git make" - - "mkdir -p ~/.docker/ && printf '%s\n' '{\"experimental\": \"enabled\"}' > ~/.docker/config.json" - - "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1" + - *cmd_install_push_packages + - *cmd_docker_login_registry script: - "make push-cross-manifest" - only: - - "/^v([0-9.]+)(-.+)?$/" - except: - - "branches" - dependencies: - - "push:amd64-image" - - "push:arm32v7-image" - - "push:arm64v8-image"