Автор оригинала: FreeCodeCamp Community Member.
Леонардо Лима
В моей нынешней компании мы недавно перенесли нашу CI Enfra от Circleci в GOCD Отказ Через несколько месяцев с использованием новой платформы CI мне было достаточно комфортно, чтобы сочь его. Одна из вещей, которые я планировал, интегрировал Dangurjs – Удивительный инструмент для ускорения вытягивания запроса обзоров, выполнив настраиваемые автоматические проверки на новом коде. Что это значит? Больше нет времени на написание PR-комментарии, как: «О, я верю, что ты забыл х … ты … Z …».
Моя цель этой статьи состоит в том, чтобы помочь следующему человеку преследовать эту миссию по улучшению качества кода их команды и процессы для обзора PR.
Контекст
Я использовал силы опасности раньше (хотя интегрирован с Ruby), и я уже знал, что первоначальная установка была бы довольно простым … Если только мы все еще используем Circleci!
По моей первой попытке интегрировать, я попробовал Googling «Интеграция Dangurjs с GOCD» без удачи. Также, прочитав документацию Dangerjs, я обнаружил, что такого понятия не было никакой такой вещи, как интеграция нативной простой интеграции с GOCD, которую я мог бы использовать.
Это означало, что я не сможет легко интегрировать проверки опасности в мой текучий поток. Так что я остался с несколькими вариантами:
- Пытаясь заставить разработчиков включить местные ручные работы команд DangeRJS;
- Создайте конкретный трубопровод в (CIRCLECI/CODUSHIP/FOOBAR), чтобы запустить только Dangurjs;
- Сдаться.
Мне не понравился ни один из моих вариантов, и я был действительно разочарован через несколько часов, проведенных в опасности и настройках GCD. Затем я наткнулся на « с использованием опасности и подделка на раздел CI » в документах DangeRJS. Вот и все! Если я могу подделать находясь на CI в моей местной машине, в чем разница от подвижности CI в GOCD-машине?
После этого это было просто вопрос выяснения, как эмулировать одно и то же местное поведение внутри инфра ГОКД.
Первые шаги
До чего-либо, вы должны пройти через Официальная документация Для того, чтобы настроить и начать использовать Dangerjs.
В основном, что вам нужно, это:
- Создайте файл dangerfile.js. Есть несколько Примеры здесь Отказ
- Создайте учетную запись бота на Github/Bitbucket для опасности для использования
- Откройте PR с измененными файлами для проверки ваших изменений
- Запустите Dangerjs локально против PR-ссылки (тот, который вы только что открыли)
- Попробуйте Поддельная среда CI в вашей местной машине
В следующем разделе я пойду глубже на этом последнем шаге, поскольку это критическая часть, чтобы сделать DangeRJS работать с GOCD.
Настройка поддельных CI в среде GCD
Во-первых, если у вас еще нет отдельно стоящего GOCD-трубопровода, чтобы запустить только запросы на тягу, я настоятельно рекомендую вам сделать это. Вот гид Если вам нужна помощь, настройка этого.
Во-вторых, после создания вашего PR-трубопровода создайте новую работу только для опасности:
Теперь, чтобы иметь возможность подделать CI, используя опасность, вам нужно установить кучу переменных среды, таких как:
export DANGER_FAKE_CI="YEP" export DANGER_TEST_REPO="username/reponame"
В настройках работы трубопровода GOCD перейдите на вкладку «Переменные среды» и устанавливайте эти два переменных ENV, заменяющие Имя пользователя/Reponame заполнители со своими собственными настройками.
После этой первой партии конфигураций, чтобы фактически запустить тесты опасности в GOCD, вы можете использовать сценарий оболочки, который выполняет те же команды, используемые для поддельных Ci в локальной среде. Давайте назовем этот файл danger-build.sh.
# danger-build.sh
echo '— — START DANGER JS VERIFICATION —'
echo Testing against commits on PR: ${GO_SCM_PIPELINE_PR_URL}
DANGER_TEST_PR=${GO_SCM_PIPELINE_PR_ID} npx yarn danger ci
echo ' — — END OF DANGER JS VERIFICATION — — 'Обратите внимание, что вам понадобится узел, NPM/пряжа, ранее установленные в POCD доступной машине.
Вы заметили эти два переменных GO_SCM ? Это улов, который позволит вам управлять своими опасными проверками внутри GOCD-машины.
Пожалуйста, уделяйте особое внимание переменную PR_ID, поскольку это тот, который предоставляет PR-ссылку, позволяющую считать опасность чтения, интерпретировать изменения, а затем записывать предложения в запросе на тягу.
Если вам интересно, эти переменные окружающей среды были созданы машинами GOCD. Они могут быть оценены, запуская /usr/bin/printenv Unix команда в сборке и проверке вывода.
Вот и все!
После отображения правильных переменных ENV в сценарии оболочки проверяются проверки DangeRJS, начнут работать в трубопроводах GCD рядом с текущим тестовым набором.
Завернуть шаги:
1. Настройте первые локальные файлы dangejss и настроек
2. Создать определенный трубопровод/задание в GOCD
3. Откройте для себя, а затем сопоставьте правильную переменные среды внутри скрипта оболочки, чтобы GOCD запустить Dangerjs
Я надеюсь, что вы нашли прохождение полезным. Если вам пользовалось статью, пожалуйста, поделитесь своими собратьями и менеджерами и помогите распространить слово.
Для любых вопросов, пожалуйста, не стесняйтесь спрашивать в разделе комментариев!
PS: Опасность также имеет много вариантов плагинов, Проверьте их Действительно
Оригинал: “https://www.freecodecamp.org/news/how-to-integrate-dangerjs-into-gocd-pipelines-7f930932ea07/”