Я использую клиент travis для написания сценария ruby для взаимодействия со своими сборками TravisCI.У меня есть рабочий файл .travis.yml с серией зашифрованных переменных env.Я пытаюсь запустить сборку из моего скрипта с новым env_var, который перезаписывает одну из существующих зашифрованных переменных env в travis.yml, но я не могу переопределить конфигурацию .yml.
При выполнении вызова APIиспользуя CURL, я могу успешно переопределить переменную env.
body='{
"request": {
"branch":"master",
"config": {
"merge_mode": "deep_merge",
"env": {
"SOME_ENV_VAR_DEFINED_IN_YML": '"$some_new_value_for_the_old_key"'
}
}
}
}'
curl -s -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Travis-API-Version: 3" \
-H "Authorization: token MYSECRETTOKEN" \
-d "$body" \
https://api.travis-ci.com/repo/MYORG%2FMYREPO/requests
Это то, что я пытаюсь сделать с клиентом в сценарии, но не могу.
IПопытался получить репо и установить несколько переменных env таким образом:
my_repo = Travis::Pro::Repository.find("MYREPO")
my_repo.env_vars.upsert("SOME_ENV_VAR_DEFINED_IN_YML", "some_new_value", public: true)
Нада.Он устанавливает переменную env для репозитория, которую я вижу в пользовательском интерфейсе travis, но не переопределяет конфигурацию .yml.
Я также попытался установить объект конфигурации для сборки, которую я хочу.
build_that_i_am_targeting.config["global_env"][index_of_env_var]="SOME_ENV_VAR_DEFINED_IN_YML=some_new_value"
Также нада - при отключении сборки он сбрасывает глобальные переменные env в предыдущую версию.
Ссылка на то, что я считал соответствующей документацией: https://github.com/travis-ci/travis.rb#build-environment-variables
Я подумывал об использовании клиентской сессии (чуть ниже приведенной выше в документации), но мне кажется, что я упускаю что-то попроще.Любые предложения / идеи высоко ценится!Спасибо!