Introduction
Vous savez probablement à quel point les flux de travail GitHub sont puissants. Ils peuvent transformer la façon dont vous consommez des logiciels et augmenter considérablement votre productivité. Avec eux, vous pouvez automatiser presque tout.
Si vous êtes nouveau dans les actions de GitHub ou si vous souhaitez les comprendre en profondeur, je recommande fortement l’excellent message de Sudarshan, « Actions GitHub pour CI / CD sans couture», Qui couvre également les principes fondamentaux des débutants.
Avez-vous déjà voulu un assistant qui vous donne votre horaire quotidien, recueille toutes les données pertinentes en votre nom et crée un plan d’action pour la journée? Le cas échéant, Les actions GitHub peuvent aider à automatiser la majeure partie de ce processus.
Dans cet article de blog, nous allons créer une action GitHub planifiée (alias un travail cron) qui exécute le code JavaScript et vous envoie un e-mail le rapport météo pour la journée – et tout ce dont vous avez besoin est un référentiel GitHub gratuit pour commencer.
Ce que nous allons construire
- Une action github qui fonctionne sur un horaire (par exemple, tous les jours à 8 h 00)
- Un script node.js qui récupère les données météorologiques de API Open-Meteo
- Un expéditeur de courriels utilisant GMAIL SMTP (consultez ce guide pour créer des informations d’identification SMTP)
- Secrets Management pour stocker en toute sécurité les informations d’identification par e-mail
Structure de dossier
Structure du dossier pour les flux de travail GitHub
Vous pouvez suivre cette structure simple ou créer le vôtre pour des cas d’utilisation avancés. Ici, nous avons gardé les choses simples et modulaires. Vous pouvez facilement ajouter plus de workflows à ce même référentiel à l’avenir pour différents cas d’utilisation.
GitHub Workflow: Daily-Report.yml
Code du flux de travail Github quotidien
on: schedule: - cron: '0 3 * * *'
C’est ainsi que vous définissez la minuterie pour l’exécution de votre flux de travail. Le temps est en UTC, et vous pouvez l’ajuster pour exécuter à votre heure préférée. Vous pouvez également ajouter plusieurs expressions CRON si vous souhaitez planifier le workflow pour s’exécuter plusieurs fois par jour. Par exemple:
on: schedule: - cron: '30 2 * * *' # 08:00 AM IST - cron: '30 8 * * *' # 02:00 PM IST - cron: '30 14 * * *' # 08:00 PM IST
Le script initialise un environnement virtuel sur une machine basée sur Ubuntu avec Node.js 22. Il installe ensuite vos dépendances NPM et exécute le script. Dans notre cas, nous n’avons pas de packages à installer, afin que nous puissions ignorer l’étape d’installation de dépendance.
Le script: sendReport.js
Code pour récupérer le rapport météo et envoyer un e-mail.
Ce script récupère les données de température horaire de l’API Open-Meteo et sélectionne la température de 8 heures pour le rapport. Vous pouvez le personnaliser et l’améliorer pour inclure les données de la journée complète ou les températures élevées et basse de la journée. Le script est rapide, léger et fonctionne sur l’infrastructure GitHub – vous n’avez donc rien à payer.
Étapes finales et définir les secrets dans github
Maintenant, nous sommes prêts à tester le script. Créez un nouveau référentiel sur votre compte GitHub, poussez le code et préparez-le pour les tests.
Pour envoyer des e-mails, vous devrez définir des secrets dans GitHub. Ces secrets seront injectés sous forme de variables d’environnement, que le script lira pour s’authentifier et envoyer l’e-mail à l’aide des informations d’identification appropriées.
Pour assurer la sécurité de vos informations d’identification:
- Accédez à votre repo → Paramètres → Secrets et variables → Actions.
- Ajouter les secrets suivants:
Email_User – Votre adresse Gmail
E-mail_pass – votre mot de passe de l’application gmail [Link]
Maintenant que vous avez défini les secrets, il est temps de tester manuellement le workflow.
Accédez à votre référentiel → Actions → Rapport météorologique quotidien, et cliquez sur «Exécuter le workflow».
Reportez-vous à la capture d’écran ci-jointe pour obtenir des conseils.
Exécutez manuellement le flux de travail à partir de la page des actions GitHub.
Que pouvez-vous automatiser d’autre?
Voici quelques idées intéressantes pour augmenter votre productivité en automatisant les tâches quotidiennes:
- Rapports quotidiens des cours des actions avec Google Sheets Intégration.
- Top 5 Hacker News ou Reddit Posts de votre créneau préféré.
- Lire votre calendrier et envoyer des résumés et des rappels quotidiens pour des réunions importantes.
- Breaking News Alertes qui pourraient être importants pour vous.
Conclusion
GitHub Actions + JavaScript est un combo puissant – et surtout, il est gratuit pour la plupart des cas d’utilisation. Pour les référentiels privés, il existe une limite d’utilisation mensuelle, que vous pouvez vérifier sur GitHub. La bonne nouvelle est qu’elle est gratuite pour les référentiels publics.
Cependant, la garantie pour l’exécution de workflows planifiés (travaux CRON) exactement sur l’heure spécifiée est limitée sur les comptes gratuits. J’ai remarqué des retards occasionnels dans la réception de notifications par e-mail, mais il y a une solution de contournement simple: planifiez vos travaux CRON un peu plus tôt que nécessaire.
Pour être honnête, le ciel est la limite de l’automatisation avec GitHub, et vous devriez commencer à décharger des tâches quotidiennes à ces scripts d’automatisation. L’intégration avec OpenAI et d’autres modèles de grande langue ouvre des portes à de nouvelles possibilités passionnantes.
Vous avez trouvé cela utile? PARTAGEZ-LE
Source link