Мне интересно, можно ли запускать некоторые сценарии только для определенных заданий, используя расширение матрицы. В случае использования я создаю образы докеров для нескольких версий PHP, и только для конкретной версии я хотел бы добавить несколько дополнительных тегов изображений докеров. Прямо сейчас я делаю это:
language: bash
services: docker
env:
- PHP_VERSION=7.2
- PHP_VERSION=7.3
before_script:
- env | sort
- IMAGE="nginx-php:${PHP_VERSION}"
- HUB_IMAGE=${HUB_USERNAME}/${IMAGE}
script:
- docker pull ${HUB_IMAGE} || true
- |
(
set -Eeuo pipefail
set -x
docker build -t ${IMAGE} --build-arg PHP_VERSION=${PHP_VERSION} --pull --cache-from ${HUB_IMAGE} .
docker images
echo ${HUB_PASSWORD} | docker login -u ${HUB_USERNAME} --password-stdin
docker tag ${IMAGE} ${HUB_IMAGE}
docker push ${HUB_IMAGE}
)
- |
if [ ${PHP_VERSION} == "7.3" ]; then
docker tag ${IMAGE} ${HUB_USERNAME}/nginx-php:7;
docker tag ${IMAGE} ${HUB_USERNAME}/nginx-php:latest;
docker push ${HUB_USERNAME}/nginx-php:7;
docker push ${HUB_USERNAME}/nginx-php:latest;
fi
В последнем разделе сценария кажется, что это можно было бы сделать лучше, но я ничего не нашел в документации.