Définir une tâche de construction (build)
Nous allons d'abord nettoyer notre workflow existant pour avoir un job build ciblé. Nous simplifierons la stratégie de matrice du laboratoire précédent pour plus de clarté, en revenant à une seule version pour nous concentrer sur les dépendances des jobs.
- Sur la page de votre dépôt GitHub pour
github-actions-demo, cliquez sur le bouton vert Code.
- Assurez-vous que l'onglet HTTPS est sélectionné et copiez l'URL. Elle devrait ressembler à
https://github.com/your-username/github-actions-demo.git.
- Ouvrez le terminal dans l'environnement LabEx. Le chemin par défaut est
~/project.
- Utilisez la commande
git clone pour télécharger le dépôt. Remplacez your-username par votre nom d'utilisateur GitHub réel.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
Exemple de sortie :
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- Naviguez dans le dépôt cloné :
cd ~/project/github-actions-demo
-
Créez un nouveau fichier de workflow .github/workflows/job-dependencies.yml en utilisant l'éditeur WebIDE. Vous pouvez trouver le fichier dans l'explorateur de fichiers sur le côté gauche sous project/github-actions-demo/.github/workflows/.
-
Commencez par créer la structure de workflow de base. Ajoutez le nom du workflow et le déclencheur :
name: Job Dependencies
on: [push]
- Ajoutez la section
jobs et définissez le job build avec son exécuteur (runner) :
jobs:
build:
runs-on: ubuntu-latest
- Ajoutez la section
steps. Tout d'abord, ajoutez l'étape de checkout pour récupérer le code du dépôt :
steps:
- uses: actions/checkout@v4
- Ajoutez l'étape de configuration de Node.js :
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- Ajoutez l'étape pour installer les dépendances :
- name: Install dependencies
run: npm install
- Ajoutez l'étape pour exécuter les tests :
- name: Run tests
run: npm test
- Ajoutez l'étape de construction (
build) qui crée le répertoire d'artefacts et le fichier :
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- Enfin, ajoutez l'étape de téléchargement de l'artefact (
Upload artifact). Cette étape est cruciale car elle sauvegarde la sortie de la construction afin que le job suivant puisse l'utiliser :
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Votre fichier complet devrait maintenant ressembler à ceci :
name: Job Dependencies
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Explication
- Nous avons supprimé la stratégie
matrix pour simplifier.
- Nous avons conservé l'étape
Upload build artifact. C'est crucial car le job suivant aura besoin de ces fichiers !
Enregistrez le fichier (Ctrl+S ou Cmd+S) après avoir effectué les modifications.