But de l'exercice : Création et utilisation d'une action
Votre image est maintenant disponible sur un registre Docker, mais personne n'est au courant.
Ca pourrait pourtant intéresser d'autres personnes de savoir qu'une mise à jour a été effectué.
Pour pallier ce point, nous allons les avertir sur Slack.
Pour cela, envoyer un message sur le channel slack du slot, en indiquant que vous (auteur du commit git) avez publié une image docker (avec son nom complet)
Le code d'une action pour notifier Slack est disponible sur la branche feature/slack-notif
Vous pouvez le récupérer dans votre branche.
Après avoir jeté un oeil sur le code source, vous vous apercevrez que le fichier qui permet de décrire l'action est fortement incomplet : action.yml
Si vous la testez en l'état, vous aurez des erreurs (Allez-y, voir les erreurs remontées ne fait jamais de mal).
Je vous invite donc à compléter le contenu de ce fichier et à tester l'action dans votre workflow.
Pour aller plus loin, vous pouvez également afficher des messages différents selon que votre pipeline soit en succès ou en erreur.
- Il n'est pas nécessaire de publier l'action pour qu'elle fonctionne. Dans notre cas, nous l'utiliserons en local.
- Pour publier dans SLACK, vos administrateurs préférés vous mettent à disposition un token :
SLACK_BOT_TOKEN
qui contient le token nécessaire à l'authentification du bot
- Pour récupérer juste une partie d'une autre branche, vous pouvez tout simplement utiliser
git checkout
en spécifiant le chemin des fichiers souhaités :git checkout <branch> <path>
La bible des actions github se trouve ici : https://help.github.com/en/github/automating-your-workflow-with-github-actions
Readme : Présentation de l'exercice
Exercice 1 : Construction de l'application (concepts : build natif & build docker, restrictions de build)
Exercice 2 : Création d'une image docker (concepts : utilisation des variables d'environnement)
Exercice 3 : Publication de l'image sur un registre docker (concepts : création et utilisation de secrets)
Exercice 4 : Affichage d'une notification dans Slack (concepts : création & utilisation d'une action, utilisation des outputs)
Exercice 5 : Construction de l'application avec de multiples versions de nodejs (concepts : utilisation des stratégies matricielles)