Updated GitLab CI
This commit is contained in:
154
.gitlab-ci.yml
154
.gitlab-ci.yml
@@ -1,137 +1,131 @@
|
|||||||
image: "docker.io/docker:stable"
|
|
||||||
|
|
||||||
services:
|
|
||||||
- "docker:dind"
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- "build:images"
|
- "build:images"
|
||||||
- "push:images"
|
- "push:images"
|
||||||
- "push:manifests"
|
- "push:manifests"
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
DOCKER_HOST: "tcp://docker:2375"
|
DOCKER_HOST: "tcp://dockerd:2376"
|
||||||
|
DOCKER_TLS_SAN: "DNS:dockerd"
|
||||||
|
DOCKER_TLS_CERTDIR: "/certs"
|
||||||
DOCKER_DRIVER: "overlay2"
|
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"
|
stage: "build:images"
|
||||||
|
except:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "docker info"
|
- *cmd_install_build_packages
|
||||||
- "apk add --no-cache coreutils git m4 make xz"
|
|
||||||
script:
|
script:
|
||||||
- "make build-native-image save-native-image"
|
- "make build-native-image save-native-image"
|
||||||
except:
|
|
||||||
- "tags"
|
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: "1 day"
|
expire_in: "1 day"
|
||||||
paths:
|
paths:
|
||||||
- "dist/"
|
- "./dist/"
|
||||||
|
|
||||||
build:amd64-image:
|
build:images:amd64:
|
||||||
stage: "build:images"
|
stage: "build:images"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "docker info"
|
- *cmd_install_build_packages
|
||||||
- "apk add --no-cache coreutils git m4 make xz"
|
|
||||||
- "make binfmt-register"
|
|
||||||
script:
|
script:
|
||||||
|
- "make binfmt-register"
|
||||||
- "make build-amd64-image save-amd64-image"
|
- "make build-amd64-image save-amd64-image"
|
||||||
only:
|
|
||||||
- "/^v([0-9.]+)(-.+)?$/"
|
|
||||||
except:
|
|
||||||
- "branches"
|
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: "1 week"
|
expire_in: "1 week"
|
||||||
paths:
|
paths:
|
||||||
- "dist/"
|
- "./dist/"
|
||||||
|
|
||||||
build:arm32v7-image:
|
build:images:arm32v7:
|
||||||
stage: "build:images"
|
stage: "build:images"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "docker info"
|
- *cmd_install_build_packages
|
||||||
- "apk add --no-cache coreutils git m4 make xz"
|
|
||||||
- "make binfmt-register"
|
|
||||||
script:
|
script:
|
||||||
|
- "make binfmt-register"
|
||||||
- "make build-arm32v7-image save-arm32v7-image"
|
- "make build-arm32v7-image save-arm32v7-image"
|
||||||
only:
|
|
||||||
- "/^v([0-9.]+)(-.+)?$/"
|
|
||||||
except:
|
|
||||||
- "branches"
|
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: "1 week"
|
expire_in: "1 week"
|
||||||
paths:
|
paths:
|
||||||
- "dist/"
|
- "./dist/"
|
||||||
|
|
||||||
build:arm64v8-image:
|
build:images:arm64v8:
|
||||||
stage: "build:images"
|
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:
|
only:
|
||||||
- "/^v([0-9.]+)(-.+)?$/"
|
- *regex_version
|
||||||
except:
|
before_script:
|
||||||
- "branches"
|
- *cmd_install_build_packages
|
||||||
|
script:
|
||||||
|
- "make binfmt-register"
|
||||||
|
- "make build-arm64v8-image save-arm64v8-image"
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: "1 week"
|
expire_in: "1 week"
|
||||||
paths:
|
paths:
|
||||||
- "dist/"
|
- "./dist/"
|
||||||
|
|
||||||
push:amd64-image:
|
push:images:amd64:
|
||||||
stage: "push:images"
|
stage: "push:images"
|
||||||
|
dependencies:
|
||||||
|
- "build:images:amd64"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "apk add --no-cache coreutils git make xz"
|
- *cmd_install_push_packages
|
||||||
- "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1"
|
- *cmd_docker_login_registry
|
||||||
script:
|
script:
|
||||||
- "make load-amd64-image push-amd64-image"
|
- "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"
|
stage: "push:images"
|
||||||
|
dependencies:
|
||||||
|
- "build:images:arm32v7"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "apk add --no-cache coreutils git make xz"
|
- *cmd_install_push_packages
|
||||||
- "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1"
|
- *cmd_docker_login_registry
|
||||||
script:
|
script:
|
||||||
- "make load-arm32v7-image push-arm32v7-image"
|
- "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"
|
stage: "push:images"
|
||||||
|
dependencies:
|
||||||
|
- "build:images:arm64v8"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
before_script:
|
before_script:
|
||||||
- "apk add --no-cache coreutils git make xz"
|
- *cmd_install_push_packages
|
||||||
- "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1"
|
- *cmd_docker_login_registry
|
||||||
script:
|
script:
|
||||||
- "make load-arm64v8-image push-arm64v8-image"
|
- "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"
|
stage: "push:manifests"
|
||||||
|
dependencies:
|
||||||
|
- "push:images:amd64"
|
||||||
|
- "push:images:arm32v7"
|
||||||
|
- "push:images:arm64v8"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
|
variables:
|
||||||
|
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
||||||
before_script:
|
before_script:
|
||||||
- "apk add --no-cache coreutils git make"
|
- *cmd_install_push_packages
|
||||||
- "mkdir -p ~/.docker/ && printf '%s\n' '{\"experimental\": \"enabled\"}' > ~/.docker/config.json"
|
- *cmd_docker_login_registry
|
||||||
- "docker login -u \"${CI_REGISTRY_USER:?}\" -p \"${CI_REGISTRY_PASSWORD:?}\" \"${CI_REGISTRY:?}\" >/dev/null 2>&1"
|
|
||||||
script:
|
script:
|
||||||
- "make push-cross-manifest"
|
- "make push-cross-manifest"
|
||||||
only:
|
|
||||||
- "/^v([0-9.]+)(-.+)?$/"
|
|
||||||
except:
|
|
||||||
- "branches"
|
|
||||||
dependencies:
|
|
||||||
- "push:amd64-image"
|
|
||||||
- "push:arm32v7-image"
|
|
||||||
- "push:arm64v8-image"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user