Applez Nous: +41 22 518 70 00
Intégré directement au cœur de la plateforme GitHub, GitHub Actions automatise les flux de travail à l’aide de fichiers YAML logés dans le répertoire .github/workflows/ :
push, pull_request, release, ou planification horaire schedule).# Fichier : .github/workflows/pipeline-ci-cd.yml
name: Pipeline CI/CD Éducasuisse
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
qualite-et-tests:
runs-on: ubuntu-latest
steps:
- name: Récupération du code source
uses: actions/checkout@v4
- name: Configuration de l'environnement Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Installation des dépendances
run: npm ci
- name: Exécution du linter
run: npm run lint
- name: Lancement des tests unitaires avec couverture
run: npm test -- --coverage
build-et-publication:
needs: qualite-et-tests
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Connexion au registre de conteneurs
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Construction et publication de l'image Docker
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}:latest,${{ github.sha }}
Ne commitez jamais de jetons API ou de mots de passe de bases de données dans Git. Utilisez l’espace GitHub Actions Encrypted Secrets et injectez-les via le contexte ${{ secrets.NOM_DU_SECRET }}. Ces valeurs sont automatiquement masquées (***) dans l’ensemble des journaux d’exécution.
Runners auto-hébergés (Self-Hosted Runners) : Pour les entreprises suisses soumises au secret professionnel ou manipulant des données hautement confidentielles, configurez des exécuteurs de pipelines au sein de vos propres serveurs locaux afin que le code source ne quitte jamais votre infrastructure souveraine.