Gitlab CI is an amazing free alternative to run your pipelines without tears. It runs in a docker container, which comes in handy and also gives us superpowers.
Once you create a pipeline you wish that everything run automatically and just be notified when it finishes successfully or not.
To make a long story short, let's get our hands dirty.
First of all, we need a pipeline to work on. Here is one super simple job that runs over the lightweight Alpine docker image.
# .gitlab-ci.yml
stages:
- test
- notification
test:
image: alpine:latest
stage: test
script:
- echo 🕵🏻 Checking...
The next step is to configure our Discord channel that will show our notifications. Do the following path Your channel > Edit Channel > Integrations > Create Webhook
then name your bot and click Copy Webhook URL
. (Discord Webhook Guide)
Go to Gitlab CI configuration at your project settings and add a new variable: settings > CI / CD > Variables
then create a new variable called WEBHOOK_URL
and paste the copied URL from Discord as the value.
Now we gonna use the script created by DiscordHooks guys.
Then our pipeline will be as the following:
# .gitlab-ci.yml
stages:
- test
- notification
test:
image: alpine:latest
stage: test
script:
- echo 🕵🏻 Checking...
success_notification:
image: alpine:latest
stage: notification
script:
- apk add --update git curl
- wget https://raw.githubusercontent.com/DiscordHooks/gitlab-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- /bin/ash ./send.sh success $WEBHOOK_URL
when: on_success
failure_notification:
image: alpine:latest
stage: notification
script:
- apk add --update git curl
- wget https://raw.githubusercontent.com/DiscordHooks/gitlab-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- /bin/ash ./send.sh failure $WEBHOOK_URL
when: on_failure
Now just chill and enjoy! Check the full code here.
Note: Do not cache those notifications jobs.
Top comments (0)