# #gitlab #gitlab-ci
Вопрос:
в настоящее время я сталкиваюсь с проблемой с использованием Gitlab-ci. я использую gitlab 13.12 community edition. Я хочу иметь возможность переопределять значение переменной CICD из задания gitlab-ci.yml.
вы можете сказать , что я мог бы просто передать значение с одного задания на другое , но цель состоит в том, чтобы изменить это значение так, чтобы в следующем конвейере все мои задания использовали обновленное.
Чтобы быть точным , я хочу иметь возможность изменять MY_CICD_VARIABLE_TO_CHANGE, который я определил в проекте > cicd >> переменные. и обновите это значение из задания gitlab-ci
что-то вроде этого, но не только измените его для текущего конвейера, но и обновите его :
change_variable_value:
stage: "change_variable"
image: myimage
script:
- $MY_CICD_VARIABLE_TO_CHANGE="value_changed"
, я пытался сделать все отдельные решения, указанные здесь :
https://docs.gitlab.com/13.12/ee/ci/variables/index.html#override-a-defined-cicd-variable
кажется, ничего не работает. Я также пытался использовать артефакт, но , похоже, я не могу передавать артефакт между 2 различными конвейерами, они должны быть частью одного конвейера, даже свернув api (по крайней мере, в версии сообщества)
Любая идея более чем приветствуется 🙂
Комментарии:
1. Запускаете ли вы следующий трубопровод из этого трубопровода? Или вы просто имеете в виду следующий конвейер, который будет запущен, когда бы это ни было?
2. Существует метод API для обновления переменной проекта ; вы пробовали это?
3. я также рекомендую добавить, в чем заключается ваше использование. я не думаю, что то, что вы планируете сделать, является хорошей практикой. Каждый конвейер выполняется самостоятельно. Поэтому, если вы хотите отредактировать переменную CI, вам нужен API или вы можете управлять файлом и зафиксировать это. В любом случае, я не думаю, что это целесообразно без прецедента использования 🙂
4. Привет , большое спасибо за ваши ответы ! на самом деле мой вариант использования заключается в том, что я хочу выполнить свою работу дважды. при первом запуске моя пользовательская переменная была установлена в значение «true» в соответствии с условием правила. И я хотел бы иметь возможность выполнить задание во второй раз с условием правила только в том случае, если ранее установленная переменная имеет значение «true». Как следствие, возможность сохранить это значение и использовать его во втором запуске. но поскольку они не являются частью одного и того же конвейера, переменная либо пуста, либо имеет значение, которое я приписал ей до того, как задание изменило ее
5. если вы хотите выполнить задание дважды, почему бы не определить его дважды в CI YAML, но где второе задание выполняется только в том случае, если переменная соответствует определенному значению?