mirror of
https://github.com/hectorm/docker-qemu-reactos
synced 2025-01-08 01:55:30 +00:00
98 lines
2.4 KiB
YAML
98 lines
2.4 KiB
YAML
stages:
|
|
- 'build:images'
|
|
- 'push:images'
|
|
- 'push:manifests'
|
|
|
|
variables:
|
|
DOCKER_HOST: 'tcp://dockerd:2376'
|
|
DOCKER_TLS_SAN: 'DNS:dockerd'
|
|
DOCKER_TLS_CERTDIR: '/certs'
|
|
DOCKER_DRIVER: 'overlay2'
|
|
|
|
default:
|
|
image: 'docker.io/docker:latest'
|
|
services:
|
|
- name: 'docker.io/docker:dind'
|
|
alias: 'dockerd'
|
|
|
|
.cmds:
|
|
- &cmd_install_build_packages 'apk add --no-cache coreutils git m4 make zstd'
|
|
- &cmd_install_push_packages 'apk add --no-cache coreutils git make zstd'
|
|
- &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:
|
|
- *cmd_install_build_packages
|
|
script:
|
|
- 'make IMAGE_BUILD_OPTS="--pull" build-native-image save-native-image'
|
|
artifacts:
|
|
expire_in: '1 day'
|
|
paths:
|
|
- './dist/'
|
|
|
|
.build:images:cross:
|
|
stage: 'build:images'
|
|
only: [*regex_version]
|
|
before_script:
|
|
- *cmd_install_build_packages
|
|
script:
|
|
- 'make binfmt-register'
|
|
- 'make IMAGE_BUILD_OPTS="--pull" "build-${ARCH:?}-image" "save-${ARCH:?}-image"'
|
|
artifacts:
|
|
expire_in: '1 week'
|
|
paths:
|
|
- './dist/'
|
|
|
|
build:images:amd64:
|
|
extends: '.build:images:cross'
|
|
variables: {ARCH: 'amd64'}
|
|
|
|
build:images:arm64v8:
|
|
extends: '.build:images:cross'
|
|
variables: {ARCH: 'arm64v8'}
|
|
|
|
build:images:arm32v7:
|
|
extends: '.build:images:cross'
|
|
variables: {ARCH: 'arm32v7'}
|
|
|
|
.push:images:cross:
|
|
stage: 'push:images'
|
|
only: [*regex_version]
|
|
before_script:
|
|
- *cmd_install_push_packages
|
|
- *cmd_docker_login_registry
|
|
script:
|
|
- 'make "load-${ARCH:?}-image" "push-${ARCH:?}-image"'
|
|
|
|
push:images:amd64:
|
|
extends: '.push:images:cross'
|
|
dependencies: ['build:images:amd64']
|
|
variables: {ARCH: 'amd64'}
|
|
|
|
push:images:arm64v8:
|
|
extends: '.push:images:cross'
|
|
dependencies: ['build:images:arm64v8']
|
|
variables: {ARCH: 'arm64v8'}
|
|
|
|
push:images:arm32v7:
|
|
extends: '.push:images:cross'
|
|
dependencies: ['build:images:arm32v7']
|
|
variables: {ARCH: 'arm32v7'}
|
|
|
|
push:manifests:cross:
|
|
stage: 'push:manifests'
|
|
dependencies: ['push:images:amd64', 'push:images:arm64v8', 'push:images:arm32v7']
|
|
only: [*regex_version]
|
|
variables:
|
|
DOCKER_CLI_EXPERIMENTAL: 'enabled'
|
|
before_script:
|
|
- *cmd_install_push_packages
|
|
- *cmd_docker_login_registry
|
|
script:
|
|
- 'make push-cross-manifest'
|