2021-02-17 16:04:47 +01:00
|
|
|
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
|
2022-03-14 22:28:27 -04:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2023-08-31 11:25:01 +02:00
|
|
|
|
2016-09-07 06:23:47 +02:00
|
|
|
variables:
|
2017-04-06 15:04:47 +02:00
|
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
2022-12-07 08:49:59 +01:00
|
|
|
GIT_DEPTH: 0
|
2024-10-31 11:46:11 +01:00
|
|
|
DISTRO: fedora # Standard distribution
|
2020-11-12 01:19:37 +01:00
|
|
|
DOCKER_FILE: packaging/docker/Dockerfile.${DISTRO}
|
2019-03-09 13:07:39 +01:00
|
|
|
DOCKER_TAG: ${CI_COMMIT_REF_NAME}
|
2019-10-26 14:54:11 +02:00
|
|
|
DOCKER_IMAGE: registry.git.rwth-aachen.de/acs/public/villas/node
|
2020-11-12 01:19:37 +01:00
|
|
|
DOCKER_IMAGE_DEV: ${DOCKER_IMAGE}/dev-${DISTRO}
|
2020-11-11 21:32:07 +01:00
|
|
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
2023-06-22 11:17:53 +02:00
|
|
|
CMAKE_BUILD_OPTS: "--parallel 16"
|
|
|
|
CMAKE_EXTRA_OPTS: "-DCMAKE_BUILD_TYPE=Release -DVILLAS_COMPILE_WARNING_AS_ERROR=ON"
|
2016-09-07 06:23:47 +02:00
|
|
|
|
|
|
|
stages:
|
2024-03-12 09:14:26 +00:00
|
|
|
- prepare
|
|
|
|
- build
|
|
|
|
- test
|
|
|
|
- packaging
|
|
|
|
- deploy
|
|
|
|
- latest
|
2017-05-01 16:57:30 +02:00
|
|
|
|
2016-09-27 19:27:19 -04:00
|
|
|
# Stage: prepare
|
2016-09-07 06:23:47 +02:00
|
|
|
|
|
|
|
# Build docker image which is used to build & test VILLASnode
|
2021-01-08 11:01:46 +01:00
|
|
|
prepare:docker:
|
2016-09-07 06:23:47 +02:00
|
|
|
stage: prepare
|
2024-03-12 09:14:26 +00:00
|
|
|
before_script:
|
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2016-09-07 06:23:47 +02:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker build ${DOCKER_OPTS}
|
2020-06-07 01:38:05 +02:00
|
|
|
--file ${DOCKER_FILE}
|
2021-01-04 18:47:13 +01:00
|
|
|
--tag ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2023-06-21 10:31:59 +00:00
|
|
|
--target ${TARGET} .
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker push ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2023-06-21 10:31:59 +00:00
|
|
|
variables:
|
|
|
|
TARGET: dev
|
2021-01-08 11:01:46 +01:00
|
|
|
parallel:
|
|
|
|
matrix:
|
2024-03-12 09:14:26 +00:00
|
|
|
- DISTRO: [ubuntu, debian, rocky]
|
|
|
|
- DISTRO: fedora
|
2024-06-06 09:50:12 +02:00
|
|
|
DOCKER_OPTS: --tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG}
|
2024-03-12 09:14:26 +00:00
|
|
|
- DISTRO: fedora
|
|
|
|
DOCKER_FILE: packaging/docker/Dockerfile.fedora-minimal
|
|
|
|
DOCKER_IMAGE_DEV: ${DOCKER_IMAGE}/dev-fedora-minimal
|
|
|
|
- DISTRO: fedora
|
|
|
|
TARGET: dev-vscode
|
|
|
|
DOCKER_IMAGE_DEV: ${DOCKER_IMAGE}/dev-vscode
|
2016-10-14 01:08:57 -04:00
|
|
|
tags:
|
2024-04-12 16:04:59 +02:00
|
|
|
- docker-image-builder
|
2016-09-07 06:23:47 +02:00
|
|
|
|
2016-09-27 19:27:19 -04:00
|
|
|
# Stage: build
|
2016-09-07 06:23:47 +02:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
build:source:
|
2016-09-07 06:23:47 +02:00
|
|
|
stage: build
|
2024-06-06 09:50:12 +02:00
|
|
|
needs: ["prepare:docker"]
|
2021-01-08 21:11:16 +01:00
|
|
|
image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2016-09-07 06:23:47 +02:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- cmake -S . -B build ${CMAKE_OPTS} ${CMAKE_EXTRA_OPTS}
|
|
|
|
- cmake --build build ${CMAKE_BUILD_OPTS}
|
2016-09-07 06:23:47 +02:00
|
|
|
artifacts:
|
2017-07-02 20:39:58 +02:00
|
|
|
expire_in: 1 week
|
2016-09-07 06:23:47 +02:00
|
|
|
paths:
|
2024-03-12 09:14:26 +00:00
|
|
|
- build/
|
2021-01-08 21:11:16 +01:00
|
|
|
variables:
|
|
|
|
CMAKE: cmake
|
2021-01-08 11:01:46 +01:00
|
|
|
parallel:
|
|
|
|
matrix:
|
2024-03-12 09:14:26 +00:00
|
|
|
- DISTRO: [fedora, fedora-minimal, debian, rocky, ubuntu]
|
|
|
|
- DISTRO: fedora-minimal
|
|
|
|
CMAKE_EXTRA_OPTS: -DVILLAS_COMPILE_WARNING_AS_ERROR=ON
|
|
|
|
-DWITH_API=OFF
|
|
|
|
-DWITH_CLIENTS=OFF
|
|
|
|
-DWITH_CONFIG=OFF
|
|
|
|
-DWITH_DOC=OFF
|
|
|
|
-DWITH_FPGA=OFF
|
|
|
|
-DWITH_GRAPHVIZ=OFF
|
|
|
|
-DWITH_HOOKS=OFF
|
|
|
|
-DWITH_LUA=OFF
|
|
|
|
-DWITH_OPENMP=OFF
|
|
|
|
-DWITH_PLUGINS=OFF
|
|
|
|
-DWITH_SRC=OFF
|
|
|
|
-DWITH_TESTS=OFF
|
|
|
|
-DWITH_TOOLS=OFF
|
|
|
|
-DWITH_WEB=OFF
|
|
|
|
-DCMAKE_MODULE_PATH=/usr/local/lib64/cmake
|
|
|
|
-DCMAKE_PREFIX_PATH=/usr/local
|
2020-06-07 01:38:05 +02:00
|
|
|
|
2024-10-31 13:06:42 +01:00
|
|
|
build:nix:
|
|
|
|
stage: build
|
|
|
|
image: nixos/nix
|
2024-10-31 13:53:40 +01:00
|
|
|
needs: []
|
2024-10-31 15:35:27 +01:00
|
|
|
|
|
|
|
artifacts:
|
|
|
|
when: on_success
|
|
|
|
access: all
|
|
|
|
expire_in: "1 year"
|
|
|
|
paths:
|
|
|
|
- artifacts/villas
|
|
|
|
|
2024-10-31 13:06:42 +01:00
|
|
|
before_script:
|
2024-10-31 15:35:27 +01:00
|
|
|
- | # Create artifacts directory
|
|
|
|
mkdir artifacts
|
|
|
|
|
2024-10-31 13:06:42 +01:00
|
|
|
- | # Configure Nix
|
|
|
|
echo "experimental-features = flakes nix-command" >> /etc/nix/nix.conf
|
|
|
|
|
|
|
|
# - | # Configure Attic
|
|
|
|
# nix shell nixpgks#attic-client
|
|
|
|
|
|
|
|
# attic login nulll https://cache.0l.de ${ATTIC_TOKEN}
|
|
|
|
# attic use "nulll:villas"
|
|
|
|
|
|
|
|
script:
|
|
|
|
- nix build --print-build-logs .
|
2024-11-03 08:59:26 +01:00
|
|
|
|
|
|
|
- | # Build ARX bundle
|
|
|
|
nix bundle --out-link villas .
|
|
|
|
cp -L villas artifacts/villas
|
|
|
|
|
|
|
|
- | # Build Docker image
|
|
|
|
nix run nixpkgs#skopeo -- login \
|
|
|
|
--username ${CI_REGISTRY_USER} \
|
|
|
|
--password ${CI_REGISTRY_PASSWORD} \
|
|
|
|
${CI_REGISTRY}
|
|
|
|
|
|
|
|
nix build '.#dockerImage'
|
|
|
|
|
|
|
|
nix run nixpkgs#skopeo -- copy --insecure-policy \
|
|
|
|
"docker-archive:./result" \
|
|
|
|
"docker://${DOCKER_IMAGE}:${DOCKER_TAG}-nix"
|
2024-10-31 13:06:42 +01:00
|
|
|
|
|
|
|
# after_script:
|
|
|
|
# - | # Push whole store to cache
|
|
|
|
# nix shell nixpgks#attic-client
|
|
|
|
|
|
|
|
# attic push /nix/store/*
|
|
|
|
|
2016-09-27 19:27:19 -04:00
|
|
|
# Stage: test
|
|
|
|
|
2023-09-20 16:17:38 +02:00
|
|
|
test:python:
|
2021-01-04 18:47:13 +01:00
|
|
|
stage: test
|
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- cd python
|
2024-03-26 23:43:49 +01:00
|
|
|
- /venv/bin/pytest --verbose .
|
|
|
|
- /venv/bin/black --extend-exclude=".*(\\.pyi|_pb2.py)$" --check .
|
|
|
|
- /venv/bin/flake8 --extend-exclude="*.pyi,*_pb2.py" .
|
2024-03-12 09:14:26 +00:00
|
|
|
- /venv/bin/mypy .
|
2021-09-22 10:27:16 +02:00
|
|
|
image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2024-06-06 09:50:12 +02:00
|
|
|
needs:
|
|
|
|
- job: "build:source: [fedora]"
|
2021-01-04 18:47:13 +01:00
|
|
|
|
|
|
|
test:cppcheck:
|
|
|
|
stage: test
|
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- ./tools/run-cppcheck.sh | tee cppcheck.log
|
2021-09-22 10:27:16 +02:00
|
|
|
image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2021-01-08 21:11:16 +01:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: "build:source: [fedora]"
|
2021-01-04 18:47:13 +01:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- cppcheck.log
|
|
|
|
expose_as: cppcheck
|
|
|
|
|
|
|
|
test:unit:
|
|
|
|
stage: test
|
2021-05-10 00:46:01 +00:00
|
|
|
image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2021-01-04 18:47:13 +01:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- cmake -S . -B build ${CMAKE_OPTS}
|
|
|
|
- cmake --build build ${CMAKE_BUILD_OPTS} --target run-unit-tests run-unit-tests-common
|
2021-01-08 21:11:16 +01:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: "build:source: [fedora]"
|
|
|
|
artifacts: true
|
2021-01-04 18:47:13 +01:00
|
|
|
|
|
|
|
test:integration:
|
|
|
|
stage: test
|
2021-05-10 00:46:01 +00:00
|
|
|
image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG}
|
2021-01-04 18:47:13 +01:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- cmake -S . -B build ${CMAKE_OPTS}
|
|
|
|
- cmake --build build ${CMAKE_BUILD_OPTS} --target run-integration-tests
|
2021-01-04 18:47:13 +01:00
|
|
|
artifacts:
|
|
|
|
name: ${CI_PROJECT_NAME}-integration-tests-${CI_BUILD_REF}
|
|
|
|
when: always
|
|
|
|
paths:
|
2024-03-12 09:14:26 +00:00
|
|
|
- build/tests/integration/
|
2021-03-09 15:44:10 -05:00
|
|
|
services:
|
2024-03-12 09:14:26 +00:00
|
|
|
- name: eclipse-mosquitto:2.0
|
|
|
|
alias: mosquitto
|
|
|
|
command: [mosquitto, -c, /mosquitto-no-auth.conf]
|
|
|
|
- name: rwthacs/rabbitmq
|
|
|
|
alias: rabbitmq
|
|
|
|
- name: redis:6.2
|
|
|
|
alias: redis
|
2021-01-08 21:11:16 +01:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: "build:source: [fedora]"
|
|
|
|
artifacts: true
|
2020-06-07 23:28:43 +02:00
|
|
|
|
2023-08-31 11:25:01 +02:00
|
|
|
test:reuse:
|
2021-01-04 18:47:13 +01:00
|
|
|
stage: test
|
2024-06-06 09:50:12 +02:00
|
|
|
needs: []
|
2023-08-31 11:25:01 +02:00
|
|
|
image:
|
2021-01-04 18:47:13 +01:00
|
|
|
name: fsfe/reuse:latest
|
2023-08-31 11:25:01 +02:00
|
|
|
entrypoint: [""]
|
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- reuse lint
|
2023-08-31 11:25:01 +02:00
|
|
|
|
2020-12-04 13:55:22 +01:00
|
|
|
# Stage: packaging
|
2020-09-03 16:58:18 +02:00
|
|
|
|
2021-09-21 11:04:18 +02:00
|
|
|
pkg:docker:
|
2019-04-05 02:19:40 +02:00
|
|
|
stage: packaging
|
2021-01-04 21:32:03 +01:00
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2021-01-04 21:32:03 +01:00
|
|
|
script:
|
2024-03-12 09:48:07 +00:00
|
|
|
- docker build ${DOCKER_OPTS}
|
2021-02-16 14:42:05 +01:00
|
|
|
--pull
|
2021-09-21 11:04:18 +02:00
|
|
|
--target ${TARGET}
|
2021-01-08 11:01:46 +01:00
|
|
|
--build-arg ARCH=${ARCH}
|
|
|
|
--build-arg TRIPLET=${TRIPLET}
|
2023-06-22 11:17:53 +02:00
|
|
|
--build-arg CMAKE_OPTS="${CMAKE_OPTS} ${CMAKE_EXTRA_OPTS}"
|
2020-12-04 13:55:22 +01:00
|
|
|
--platform ${PLATFORM}
|
2021-01-08 11:01:46 +01:00
|
|
|
--file ${DOCKER_FILE}
|
|
|
|
--tag ${DOCKER_IMAGE}:${DOCKER_TAG}-${ARCH} .
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker push ${DOCKER_IMAGE}:${DOCKER_TAG}-${ARCH}
|
2019-04-05 02:19:40 +02:00
|
|
|
tags:
|
2024-05-14 17:59:10 +02:00
|
|
|
- $TAG
|
2021-09-21 11:04:18 +02:00
|
|
|
variables:
|
|
|
|
TARGET: app
|
2021-01-08 11:01:46 +01:00
|
|
|
parallel:
|
|
|
|
matrix:
|
2021-09-21 13:44:45 +02:00
|
|
|
- DISTRO: debian
|
2021-09-22 10:46:38 +02:00
|
|
|
PLATFORM: linux/amd64
|
2021-09-21 13:44:45 +02:00
|
|
|
ARCH: x86_64
|
2024-03-12 09:14:26 +00:00
|
|
|
TRIPLET: x86_64-linux-gnu
|
2024-05-14 17:59:10 +02:00
|
|
|
TAG: docker
|
|
|
|
- DISTRO: debian
|
|
|
|
PLATFORM: linux/arm64/v8
|
|
|
|
ARCH: arm64
|
|
|
|
TRIPLET: aarch64-linux-gnu
|
2024-10-22 08:06:07 +00:00
|
|
|
TAG: pi5
|
2020-12-04 13:55:22 +01:00
|
|
|
needs: []
|
2019-04-05 02:19:40 +02:00
|
|
|
|
2017-11-20 14:30:17 +01:00
|
|
|
# Stage: deploy
|
2017-03-31 21:20:36 +02:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
deploy:docker:
|
|
|
|
stage: deploy
|
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2021-01-08 21:11:16 +01:00
|
|
|
script:
|
2024-03-12 15:13:01 +01:00
|
|
|
- docker manifest rm ${DOCKER_IMAGE}:${DOCKER_TAG} || true
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker manifest create ${DOCKER_IMAGE}:${DOCKER_TAG}
|
|
|
|
${DOCKER_IMAGE}:${DOCKER_TAG}-x86_64
|
2024-10-22 08:06:07 +00:00
|
|
|
${DOCKER_IMAGE}:${DOCKER_TAG}-arm64
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker manifest push ${DOCKER_IMAGE}:${DOCKER_TAG}
|
2022-03-14 22:28:27 -04:00
|
|
|
tags:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker
|
2022-03-14 22:28:27 -04:00
|
|
|
needs:
|
2024-05-14 18:22:27 +02:00
|
|
|
- job: "pkg:docker: [debian, linux/amd64, x86_64, x86_64-linux-gnu, docker]"
|
2024-10-31 11:46:11 +01:00
|
|
|
- job: "pkg:docker: [debian, linux/arm64/v8, arm64, aarch64-linux-gnu, pi5]"
|
2022-03-14 22:28:27 -04:00
|
|
|
|
|
|
|
deploy:docker-dev:
|
|
|
|
stage: deploy
|
|
|
|
variables:
|
|
|
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2022-03-14 22:28:27 -04:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker push ${DOCKER_IMAGE}/dev:${DOCKER_TAG}
|
2021-01-08 21:11:16 +01:00
|
|
|
tags:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker
|
2021-01-08 21:11:16 +01:00
|
|
|
needs:
|
2024-06-06 09:50:12 +02:00
|
|
|
- job: "prepare:docker: [fedora, --tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG}]"
|
2021-01-08 21:11:16 +01:00
|
|
|
|
2023-06-21 10:31:59 +00:00
|
|
|
deploy:docker-dev-vscode:
|
|
|
|
stage: deploy
|
|
|
|
variables:
|
|
|
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2023-06-21 10:31:59 +00:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker push ${DOCKER_IMAGE}/dev-vscode:${DOCKER_TAG}
|
2023-06-21 10:31:59 +00:00
|
|
|
tags:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker
|
2023-06-21 10:31:59 +00:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: "prepare:docker: [fedora, dev-vscode, ${DOCKER_IMAGE}/dev-vscode]"
|
2023-06-21 10:31:59 +00:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
# Stage: latest
|
2023-08-31 11:25:01 +02:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
.latest:docker:latest: &deploy_latest_docker
|
|
|
|
stage: latest
|
2020-12-04 13:55:22 +01:00
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2019-11-12 22:04:16 +01:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker manifest create ${DOCKER_IMAGE}:latest
|
|
|
|
${DOCKER_IMAGE}:${DOCKER_TAG}-x86_64
|
|
|
|
${DOCKER_IMAGE}:${DOCKER_TAG}-arm64
|
|
|
|
${DOCKER_IMAGE}:${DOCKER_TAG}-armhf
|
|
|
|
- docker manifest push ${DOCKER_IMAGE}:latest
|
2019-10-26 16:39:28 +02:00
|
|
|
tags:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker
|
2021-01-08 21:11:16 +01:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: deploy:docker
|
2021-01-04 18:47:13 +01:00
|
|
|
|
2022-03-14 22:28:27 -04:00
|
|
|
.latest:docker-dev:latest: &deploy_latest_docker_dev
|
|
|
|
stage: latest
|
|
|
|
before_script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
2022-03-14 22:28:27 -04:00
|
|
|
script:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG} ${DOCKER_IMAGE}/dev:latest
|
|
|
|
- docker push ${DOCKER_IMAGE}/dev:latest
|
2022-03-14 22:28:27 -04:00
|
|
|
tags:
|
2024-03-12 09:14:26 +00:00
|
|
|
- docker
|
2022-03-14 22:28:27 -04:00
|
|
|
needs:
|
2024-03-12 09:14:26 +00:00
|
|
|
- job: deploy:docker-dev
|
2022-03-14 22:28:27 -04:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
latest:docker:
|
|
|
|
<<: *deploy_latest_docker
|
|
|
|
only:
|
2024-03-12 09:14:26 +00:00
|
|
|
- "/^v\\d+(\\.\\d+)+$/" # Only on version tags
|
2021-01-04 18:47:13 +01:00
|
|
|
|
2022-03-14 22:28:27 -04:00
|
|
|
latest:docker-dev:
|
|
|
|
<<: *deploy_latest_docker_dev
|
|
|
|
only:
|
2024-03-12 09:14:26 +00:00
|
|
|
- "/^v\\d+(\\.\\d+)+$/" # Only on version tags
|
2022-03-14 22:28:27 -04:00
|
|
|
|
2021-01-08 21:11:16 +01:00
|
|
|
latest:docker:manual:
|
|
|
|
<<: *deploy_latest_docker
|
|
|
|
when: manual
|
|
|
|
except:
|
2024-03-12 09:14:26 +00:00
|
|
|
- "/^v\\d+(\\.\\d+)+$/" # Only on version tags
|
2022-03-14 22:28:27 -04:00
|
|
|
|
|
|
|
latest:docker-dev:manual:
|
|
|
|
<<: *deploy_latest_docker_dev
|
|
|
|
when: manual
|
|
|
|
except:
|
2024-03-12 09:14:26 +00:00
|
|
|
- "/^v\\d+(\\.\\d+)+$/" # Only on version tags
|