Как переопределить переменные среды .travis.yml из сценария ruby ​​с помощью клиента travis - PullRequest
0 голосов
/ 24 сентября 2019

Я использую клиент 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

Я подумывал об использовании клиентской сессии (чуть ниже приведенной выше в документации), но мне кажется, что я упускаю что-то попроще.Любые предложения / идеи высоко ценится!Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...