Почему Gitlab не прокидывает variables во все ветки?

Создал и настроил gitlab ci, прописал variables в интерфейсе гитлаба
Пробую сделать что бы для для разных веток были различные настройки сборки
Однако, столкнулся с тем что когда сборка происходит на всех ветках, кроме master, сборка не получает переменные окружения.

image: docker:stable
services:
  - docker:dind

stages:
  - test
  - package

variables:
  DOCKER_HOST: tcp://dockerhost
  DOCKER_TLS_VERIFY: 1
  DOCKER_CERT_PATH: "/certificates"

before_script:
  - mkdir -p $DOCKER_CERT_PATH
  - echo "$TLSCACERT" > $DOCKER_CERT_PATH/ca.pem
  - echo "$TLSCERT" > $DOCKER_CERT_PATH/cert.pem
  - echo "$TLSKEY" > $DOCKER_CERT_PATH/key.pem
  - echo $HUB_REGISTRY_PASSWORD
  - echo $TLSCACERT
  - cat $DOCKER_CERT_PATH/ca.pem
  - docker login -u derbenev -p $HUB_REGISTRY_PASSWORD $CI_REGISTRY

test:
  stage: test
  only:
    - develop
    - master
    - prod
  tags:
    - docker
  script:
    - pwd
    - sh test.sh

develop:
  stage: package
  only:
    - develop
  tags:
    - docker
  script:
    - build.sh


При сборке из ветки master я вижу указанные переменные окружения
$ cat $DOCKER_CERT_PATH/ca.pem
-----BEGIN CERTIFICATE----- **** -----END CERTIFICATE-----
$ docker login -u derbenev -p $HUB_REGISTRY_PASSWORD $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
$ echo $HUB_REGISTRY_PASSWORD
***
$ echo $TLSCACERT
-----BEGIN CERTIFICATE----- *** --END CERTIFICATE-----

а при сборке из других веток выдает
$ echo $HUB_REGISTRY_PASSWORD

$ echo $TLSCACERT

$ cat $DOCKER_CERT_PATH/ca.pem

$ docker login $CI_REGISTRY
failed to append certificates from PEM file: "/certificates/ca.pem"


Не могу понять в чем дело
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
@arswarog Автор вопроса
Выяснил что для этого ветка должна быть в списке защищенных
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы