Рубрики
Uncategorized

Уведомления Rocketchat на вашем CI / CD-трубопроводе

Как использовать Rocketchat, чтобы следовать вашему CI / CD. Помечено в Rocketchat, Cicd, Go, Gitlab.

Эй, там:) Я большой поклонник Ракета Чат Отказ Такой большой поклонник, который я даже писал Моя собственная обертка API для отдыха Чтобы использовать его с Python и убедил всех в своей компании, чтобы мигрировать от Slack. И поскольку я работаю в программном доме, мы вскоре начали использовать его для многих вещей. У нас даже есть бот, чтобы настроить напоминания в Организации:) Одна вещь, которую мы любим о работе, мы делаем постоянную интеграцию. Мы очень качественные ориентированные команды, и нам нравится все, что нужно автоматизировать. Я хочу сделать Git push И все должно автоматически начать строительство, тестирование, измерение и развертывание, и я, конечно, хочу иметь уведомления о моем потрясающем приложении чата, поэтому моя команда также знает о том, что происходит, даже не открывая наши инструменты CI. Я знаю, что есть много инструментов CI, но один из самых популярных в моей команде — Gitlab-Ci. Я лично переключился из Дженкинса, потому что я любил, как Gitlab работает все с Docker из коробки, и я нахожу Sintax более четким и красивым, поэтому я напишу свои примеры, используя запись GitLab-Ci. Итак, вы можете технически толкать уведомления в Rocketchat, используя только скручивание, но, вероятно, будет многослойным. Во-первых, вам придется войти в свой чат-сервер и сохранить токены, а затем опубликовать сообщение, которое вы хотите, все, например, Curl Отказ Согласно документированию API для отдыха, вы бы вошли в систему

curl http://localhost:3000/api/v1/login \
     -d "username=myusername&password=mypassword"

который приведет к тому, что ответ, как это:

{
  "status": "success",
  "data": {
      "authToken": "9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq",
      "userId": "aobEdbYhXfu5hkeqG",
      "me": {
            "_id": "aYjNnig8BEAWeQzMh",
            "name": "Rocket Cat",
            "emails": [
                {
                  "address": "rocket.cat@rocket.chat",
                  "verified": false
                }
            ],
            "status": "offline",
            "statusConnection": "offline",
            "username": "rocket.cat",
            "utcOffset": -3,
            "active": true,
            "roles": [
                "admin"
            ],
            "settings": {
                "preferences": {}
              }
        }
   }
}

И вам нужно было бы сохранить значения авторский и userid использоваться для публикации сообщения. Размещение сообщения после этого, используя Curl Также не сложно:

curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \
     -H "X-User-Id: aobEdbYhXfu5hkeqG" \
     -H "Content-type:application/json" \
     http://localhost:3000/api/v1/chat.postMessage \
     -d '{ "channel": "#general", "text": "This is a test!" }'

Это должно быть очень легко сделать сценарий с этим, но так как я хотел практиковать некоторые ИДТИ Я решил сделать Это приложение И так как я люблю путь Идти Просто работает почти везде, где казалось хорошей идеей, и это было. Таким образом, идея сейчас немного проще: Вам просто нужно скачать выпущенное приложение (или компилировать его самостоятельно) и выполнено, как показано в справке.

wget https://github.com/aleph-engineering/rocketchat-notification/releases/download/1.4.1/rocketchat-notification -P /usr/bin/ && chmod +x /usr/bin/rocketchat-notification

а также

rocketchat-notification -c general -u user -p ${ROCKET_PASSWORD} -s https://myserver.rocket.chat -m "hello from terminal"

Довольно просто справа? Теперь давайте будем использовать его в предложении:) На мой gitlab-ci (.gitlab-ci.yml на ваши файлы) я бы сделал что-то подобное: Во-первых, давайте поместим пароль пользователя, который мы хотим использовать в качестве переменной среды на GitLab, поэтому она не сохраняется на наших файлах, улучшающих нашу безопасность: Это сделано в настройках нашего проекта под CI/CD И давайте напишем в нашем .gitlab-ci.yml что-то вроде этого:

stages:
- test

image: docker:stable-dind

test_nitofication:
  stage: test
  before_script:
  - wget https://github.com/aleph-engineering/rocketchat-notification/releases/download/1.4.1/rocketchat-notification -P /usr/bin/ && chmod +x /usr/bin/rocketchat-notification
  script:
  - rocketchat-notification -c general -u gitlab -p ${ROCKET_PASSWORD} -s https://yourserver.rocket.chat -m "hello from CI"

Совершать и подталкивать свои изменения и ждать уведомления:) Вы хотите отправить вывод команды в ваш чат? Без проблем. Вы всегда можете запустить уведомление Rocketchat, чтобы прочитать из стандартного ввода, как это:

docker ps | rocketchat-notification -c general -u gitlab -p ${ROCKET_PASSWORD} -s https://yourserver.rocket.chat

и используя -Коде истина Флаг Ваш текст появится в кодовом ящике в чате. Вот и все. Я надеюсь, что вы найдете это интересное и практичное и веселиться с вашей постоянной интеграцией.

Оригинал: «https://dev.to/jadolg/rocketchat-notifications-on-your-cicd-pipeline-59p5»