Article original : How to get GitLab to do periodic jobs for you in under a minute

Par Moe Ibrahim

Que serait la technologie sans un ordinateur effectuant un travail périodique ?

Qu'il s'agisse de votre téléphone vérifiant constamment votre boîte de réception, ou d'alertes opportunes pour la météo ou les retards de vol.

Et un service de prix du bitcoin contre le dollar canadien, en seulement 56 secondes ? Pas de IFTTT, pas de Zapier, mais pas non plus de langages de programmation — et pas de frameworks, pas de configuration de serveur ou de docker, pas de Raspberry Pi, pas d'AWS et pas de tests !

Pour rendre l'exemple aussi universel que possible, nous n'utiliserons que 2 lignes de commande :

  • une pour obtenir le prix du bitcoin à partir d'une API
  • et une autre pour le publier sur un autre service.

Bien sûr, vous pouvez rendre cela plus utile en publiant le prix sur Twitter, Twilio, Telegram, Slack, etc. Mais ici, nous le publierons simplement sur putsreq.com afin de pouvoir inspecter la requête POST.

Ensuite, nous utiliserons GitLab-CI pour planifier son exécution tous les jours.

Niveau : Tous niveaux

Prérequis : N'importe quel navigateur web

Commençons :

  1. Créez un compte gratuit sur gitlab.com (20 secondes)

  2. Créez un nouveau projet : Cliquez sur le bouton Nouveau projet pour créer un nouveau dépôt, et dans le champ de nom, tapez periodic-job ou un autre nom. (9 secondes)

Image

Ensuite, enregistrez-le en cliquant sur Créer le projet (1 seconde).

Image

  1. Créez un fichier .gitlab-ci.yml dans ce nouveau projet : Cliquez sur Nouveau fichier, copiez et collez le snippet suivant dans le fichier .gitlab-ci.yml, puis cliquez sur enregistrer (5 secondes)

Image

Image

test:
 script:
 - btc=$(curl https://min-api.cryptocompare.com/data/price?fsym=BTC\&tsyms=CAD)
- curl -i -X POST https://putsreq.com/wkDdMQWhaOyalisaIe49 — data 'price=CA$ "${btc//[0-9\.]/}"'

Ce sont essentiellement deux commandes simples. Ici, nous pouvons aller plus loin et ajouter

if [ $btc -ge 15000 -a $btc -lt 7000 ]; then

des conditions, ou même exécuter un fichier de script bash complet, mais gardons cela simple.

Cliquez sur le bouton Valider les modifications, et cela déclenchera la construction et l'exécution.

  1. Planifiez-le pour qu'il s'exécute tous les jours : cliquez sur l'icône CI/CD pour développer le menu, et sélectionnez Planifications pour configurer un nom et un minuteur pour déclencher votre tâche périodique. (11 secondes)

Image

Image cliquez sur le bouton Nouvelle planification

Image Tapez un nom pour la nouvelle planification daily-bitcoin-price-job, sélectionnez pour l'exécuter quotidiennement puis cliquez sur Enregistrer

Image Votre tâche planifiée a été enregistrée

  1. Félicitations ! Vous avez terminé. Allez sur ce lien dans putsreq.com pour le voir en action. (10 secondes)

Image

Cette tâche s'exécutera tous les jours tant que vos 2000 minutes de construction gratuites par mois ne seront pas épuisées.

Nous n'avons même pas effleuré la surface de ce que nous pouvons faire avec GitLab-CI — pensez simplement à toutes les possibilités de l'utiliser pour créer des webhooks ou le connecter à IFTTT et Zapier, qui à leur tour le connecteraient à des centaines de services.

Dans l'article suivant, nous passerons en revue ce que nous venons de faire, et comment nous pouvons passer à la vitesse supérieure et créer un webhook et l'utiliser pour publier sur les réseaux sociaux.

Vous pouvez trouver le code exemple ici, et vous pouvez lire les journaux de construction ici.