Вы можете запускать сценарии только на некоторых заданиях, используя расширение матрицы? - PullRequest
0 голосов
/ 20 октября 2019

Мне интересно, можно ли запускать некоторые сценарии только для определенных заданий, используя расширение матрицы. В случае использования я создаю образы докеров для нескольких версий 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

В последнем разделе сценария кажется, что это можно было бы сделать лучше, но я ничего не нашел в документации.

...