Рубрики
Без рубрики

Как интегрировать Dangurjs в GOCD трубопроводы

Leonardo Lima, как интегрировать Dangerjs в GOCD Pipelinesat Моя нынешняя компания, мы недавно перенесли нашу инфра CI из Circleci в GOCD. Через несколько месяцев с использованием новой платформы CI мне было достаточно комфортно, чтобы сочь его. Одна из вещей, которые я планировал, был

Автор оригинала: FreeCodeCamp Community Member.

Леонардо Лима

В моей нынешней компании мы недавно перенесли нашу CI Enfra от Circleci в GOCD Отказ Через несколько месяцев с использованием новой платформы CI мне было достаточно комфортно, чтобы сочь его. Одна из вещей, которые я планировал, интегрировал Dangurjs – Удивительный инструмент для ускорения вытягивания запроса обзоров, выполнив настраиваемые автоматические проверки на новом коде. Что это значит? Больше нет времени на написание PR-комментарии, как: «О, я верю, что ты забыл х … ты … Z …».

Моя цель этой статьи состоит в том, чтобы помочь следующему человеку преследовать эту миссию по улучшению качества кода их команды и процессы для обзора PR.

Контекст

Я использовал силы опасности раньше (хотя интегрирован с Ruby), и я уже знал, что первоначальная установка была бы довольно простым … Если только мы все еще используем Circleci!

По моей первой попытке интегрировать, я попробовал Googling «Интеграция Dangurjs с GOCD» без удачи. Также, прочитав документацию Dangerjs, я обнаружил, что такого понятия не было никакой такой вещи, как интеграция нативной простой интеграции с GOCD, которую я мог бы использовать.

Это означало, что я не сможет легко интегрировать проверки опасности в мой текучий поток. Так что я остался с несколькими вариантами:

  1. Пытаясь заставить разработчиков включить местные ручные работы команд DangeRJS;
  2. Создайте конкретный трубопровод в (CIRCLECI/CODUSHIP/FOOBAR), чтобы запустить только Dangurjs;
  3. Сдаться.

Мне не понравился ни один из моих вариантов, и я был действительно разочарован через несколько часов, проведенных в опасности и настройках 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/”