Tester le système d'Intégration et de Livraison Continues (CI/CD) intégré à Forgejo #17

Open
opened 2025-09-28 17:59:42 +02:00 by Demoulin Erik · 2 comments

Les Forgejo Actions Workflows sont le système d'Intégration et de Livraison Continues (CI/CD) intégré à Forgejo, vous permettant d'automatiser des tâches telles que la compilation, les tests, le déploiement ou la publication de votre logiciel directement depuis votre dépôt.


Concepts de Base

Les workflows Forgejo Actions sont définis dans des fichiers YAML stockés dans le répertoire .forgejo/workflows de votre dépôt (par exemple, <depot_test>).
Voici les éléments clés d'un workflow :

  1. name (Optionnel) : Le nom du workflow, affiché dans l'onglet Actions.
  2. on : Définit les événements qui déclencheront l'exécution du workflow (exemples : push pour un nouveau commit, pull_request pour l'ouverture d'une Pull Request, schedule pour une exécution planifiée).
  3. jobs : Une collection de tâches qui seront exécutées. Par défaut, elles s'exécutent en parallèle.
  4. <job_id> : Chaque tâche doit avoir un identifiant unique (ex : test ou build).
    • runs-on : Spécifie le Runner (l'environnement d'exécution) qui exécutera cette tâche (par exemple, docker ou ubuntu-22.04:docker://node:20-bullseye).
    • steps : Une séquence d'étapes exécutées séquentiellement au sein de la tâche. Si une étape échoue, la tâche s'arrête.
  5. <step> : Chaque étape est soit :
    • run : Exécute une commande shell (par exemple, echo "Bonjour").
    • uses : Utilise une Action réutilisable (une procédure prédéfinie) issue d'un dépôt (par exemple, l'Action actions/checkout@v4 pour récupérer le code du dépôt).
### Les **Forgejo Actions Workflows** sont le système d'**Intégration et de Livraison Continues (CI/CD)** intégré à Forgejo, vous permettant d'**automatiser** des tâches telles que la compilation, les tests, le déploiement ou la publication de votre logiciel directement depuis votre dépôt. --- #### **Concepts de Base** Les workflows Forgejo Actions sont définis dans des fichiers **YAML** stockés dans le répertoire **.forgejo/workflows** de votre dépôt (par exemple, \<depot\_test\>). Voici les éléments clés d'un workflow : 1. **name** (Optionnel) : Le nom du workflow, affiché dans l'onglet Actions. 2. **on** : Définit les **événements** qui déclencheront l'exécution du workflow (exemples : push pour un nouveau commit, pull\_request pour l'ouverture d'une Pull Request, schedule pour une exécution planifiée). 3. **jobs** : Une collection de **tâches** qui seront exécutées. Par défaut, elles s'exécutent en parallèle. 4. **\<job\_id\>** : Chaque tâche doit avoir un identifiant unique (ex : test ou build). * **runs-on** : Spécifie le **Runner** (l'environnement d'exécution) qui exécutera cette tâche (par exemple, docker ou ubuntu-22.04:docker://node:20-bullseye). * **steps** : Une séquence d'**étapes** exécutées séquentiellement au sein de la tâche. Si une étape échoue, la tâche s'arrête. 5. **\<step\>** : Chaque étape est soit : * **run** : Exécute une **commande shell** (par exemple, echo "Bonjour"). * **uses** : Utilise une **Action** réutilisable (une procédure prédéfinie) issue d'un dépôt (par exemple, l'Action actions/checkout@v4 pour récupérer le code du dépôt).
Author
Owner

Exemple de Fichier YAML

Pour votre dépôt <depot_test>, vous créerez le fichier .forgejo/workflows/verification_simple.yaml.

Ce workflow simple sera déclenché lors de chaque push sur n'importe quelle branche et exécutera une seule tâche pour afficher un message et lister les fichiers du dépôt.


# .forgejo/workflows/verification_simple.yaml

name: Simple Verification Workflow 🚀

# Déclencheur : Exécuter ce workflow à chaque événement 'push'
on: [push]

# Définition des tâches
jobs:
  # Identifiant de la tâche : 'test'
  test:
    # Indique sur quel runner cette tâche doit s'exécuter.
    # 'docker' est un label courant si un runner Docker est configuré.
    runs-on: docker
    
    # Séquence des étapes à exécuter dans la tâche 'test'
    steps:
      # Étape 1 : Récupérer le code du dépôt
      - name: Checkout code ⬇️
        # Utilise l'Action standard de Forgejo/GitHub pour cloner le dépôt
        uses: https://data.forgejo.org/actions/checkout@v4
      
      # Étape 2 : Afficher un message
      - name: Afficher un message de bienvenue 👋
        # Exécute une commande shell
        run: echo "Le workflow a démarré dans le dépôt <depot_test>!"
        
      # Étape 3 : Lister les fichiers
      - name: Lister les fichiers 📂
        # Exécute une autre commande shell pour vérifier le contenu
        run: ls -al
#### **Exemple de Fichier YAML** Pour votre dépôt <depot_test>, vous créerez le fichier `.forgejo/workflows/verification_simple.yaml`. Ce workflow simple sera déclenché lors de chaque push sur n'importe quelle branche et exécutera une seule tâche pour afficher un message et lister les fichiers du dépôt. ```yaml # .forgejo/workflows/verification_simple.yaml name: Simple Verification Workflow 🚀 # Déclencheur : Exécuter ce workflow à chaque événement 'push' on: [push] # Définition des tâches jobs: # Identifiant de la tâche : 'test' test: # Indique sur quel runner cette tâche doit s'exécuter. # 'docker' est un label courant si un runner Docker est configuré. runs-on: docker # Séquence des étapes à exécuter dans la tâche 'test' steps: # Étape 1 : Récupérer le code du dépôt - name: Checkout code ⬇️ # Utilise l'Action standard de Forgejo/GitHub pour cloner le dépôt uses: https://data.forgejo.org/actions/checkout@v4 # Étape 2 : Afficher un message - name: Afficher un message de bienvenue 👋 # Exécute une commande shell run: echo "Le workflow a démarré dans le dépôt <depot_test>!" # Étape 3 : Lister les fichiers - name: Lister les fichiers 📂 # Exécute une autre commande shell pour vérifier le contenu run: ls -al ```
Author
Owner

Fonctionnement

  1. Vous ajoutez ce fichier verification\_simple.yaml à votre dépôt sous le chemin .forgejo/workflows/.
  2. Vous effectuez un push sur votre dépôt \depot_test.
  3. Forgejo détecte l'événement push et déclenche le workflow.
  4. Un Runner (avec le label docker dans cet exemple) récupère la tâche test.
  5. Le Runner exécute les étapes séquentiellement :
    • Il utilise l'Action checkout pour cloner le code.
    • Il exécute la commande echo.
    • Il exécute la commande ls -al.
  6. Le résultat (logs et statut) est renvoyé à Forgejo et visible dans l'onglet Actions de votre dépôt.
#### **Fonctionnement** 1. Vous ajoutez ce fichier `verification\_simple.yaml` à votre dépôt sous le chemin **.forgejo/workflows/**. 2. Vous effectuez un **push** sur votre dépôt \depot\_test\. 3. Forgejo détecte l'événement push et déclenche le workflow. 4. Un **Runner** (avec le label docker dans cet exemple) récupère la tâche test. 5. Le Runner exécute les étapes séquentiellement : * Il utilise l'Action checkout pour cloner le code. * Il exécute la commande echo. * Il exécute la commande ls \-al. 6. Le résultat (logs et statut) est renvoyé à Forgejo et visible dans l'onglet **Actions** de votre dépôt.
Demoulin Erik added this to the 0.1.5 milestone 2025-09-28 18:10:17 +02:00
Demoulin Erik added the due date 2025-10-05 2025-09-28 18:10:49 +02:00
Demoulin Erik referenced this issue from a commit 2025-09-28 19:04:32 +02:00
#17
Demoulin Erik modified the milestone from 0.1.5 to 0.2.0 2025-09-28 19:53:03 +02:00
Demoulin Erik referenced this issue from a commit 2025-09-28 22:42:04 +02:00
#17
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

2025-10-05

Dependencies

No dependencies set.

Reference
Erik/depot_test#17
No description provided.