Как я могу установить переменную конфигурации в одноразовой Heroku Dyno? - PullRequest
0 голосов
/ 24 марта 2020

Я пишу простой скрипт, который будет запускаться в одноразовой игре Heroku Dyno (запускается с помощью команды heroku run). Цель сценария - получить ха sh последнего коммита в главной ветке моего репо и установить для него одну из конфигурационных переменных heroku.

Я пытаюсь выполнить следующие команды, чтобы клонировать репозиторий в heroku dyno, изменить каталоги на каталог, созданный клоном, а затем установить переменную config в требуемое значение.

heroku run "git clone https://`heroku config:get GITHUB_TOKEN`@github.com/<org>/<repo>.git && cd <repo> && `heroku config:set CURRENT_HASH=`git rev-parse HEAD``"

Когда я выполняю все и все команды, которые следуют за heroku run в моем локальном терминале, он работает нормально. Однако, когда я выполняю команду, написанную выше, в однократной записи, используя heroku run, сначала вызывается heroku config:set, и в переменной конфигурации CURRENT_HASH устанавливается пустая строка. Затем клон git выполняется успешно (переменная конфигурации GITHUB_TOKEN правильно прочитана) и затем выполняется git rev-parse HEAD. Таким образом, вывод выглядит следующим образом:

Setting CURRENT_HASH and restarting <heroku app name>... done, v246
Running git clone https://<GITHUB_TOKEN>@github.com/<org>/<repo>.git; cd <repo>; git rev-parse HEAD on ⬢ <heroku app name>... up, run.1538 (Hobby)
Cloning into '<repo>'...
remote: Enumerating objects: 330, done.
remote: Counting objects: 100% (330/330), done.
remote: Compressing objects: 100% (222/222), done.
remote: Total 4635 (delta 123), reused 269 (delta 98), pack-reused 4305
Receiving objects: 100% (4635/4635), 8.95 MiB | 9.27 MiB/s, done.
Resolving deltas: 100% (2425/2425), done.
bbb748d543a511eed4986cddb68b292ce1be67ad //hash of the last commit

Чего я не понимаю, так это почему heroku config:set выполняется первым, хотя это последняя команда. Кроме того, когда я пытаюсь выполнить heroku config:get или heroku config:set, используя heroku run без обратных галочек, сценарий завершается с ошибкой bash: heroku: command not found. Вот почему я использую вложенные обратные метки для heroku config:set... и git rev-parse HEAD, чтобы команда не потерпела неудачу с ошибкой.

Любая помощь будет принята с благодарностью.

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