我想知道是否可以使用矩阵扩展仅在特定作业上运行某些脚本。用例,我正在为多个PHP版本构建docker映像,并且仅在特定版本上,我想添加一些额外的docker映像标签。现在我正在这样做:
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
最后一个脚本部分似乎可以做得更好,但是我并没有在文档中找到任何东西。