Настраиваем уведомления о событиях через Github Actions в Discord. Мы с командой стали использовать Discord для рабочей коммуникации, в одном из каналов хотели настроить уведомления из Github-репозитория о результатах работы CI/CD.
Что мы сделаем: когда появился новый пул-реквест или появились коммиты в открытом пул-реквесте, нужно прогнать тесты и отправить результат в Дискорд.
Для работы с Дискордом из Гитхаб Экшнс будем использовать готовый экшн appleboy/discord-action@master
. Делаем вот так в файле .github/workflows/main.yml
:
name: Testing
on: [pull_request]
jobs:
testing:
name: Testing
runs-on: ubuntu-18.04
steps:
- name: Send start notification to Discord
uses: appleboy/discord-action@master
with:
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
color: "#8b9b9c"
username: "GitHub Bot"
message: |
Tests started by 👤 ${{ github.actor }}
From `${{ github.head_ref }}` to `${{ github.base_ref }}`
Event `${{ github.event_name }}`
PR ${{ github.event.number }}: ${{ github.event.pull_request.url }}
После этого нужно добавить сикреты в раздел Secrets в настройках репозитория в Гитхабе. Поскольку сикреты содержат в себе информацию о вебхуке Дискорда, то сначала создадим вебхук. Переходим в настройки сервера, идём в вебхуки и создаём вебхук:
После того, как сделали вебхук — копируйте ссылку и переходите по ней. Ссылка выглядит примерно так: https://discordapp.com/api/webhooks/{id}/{token}
. Копируем из ссылки id
и token
, используем их для добавления сикретов в настройках репозитория в гитхабе.
После создания сикретов создайте пул-реквест, проверьте в разделе Actions
в Гитхабе, что экшн заработал. После этого проверьте, что уведомление пришло в канал. Выглядит в результате это так: