{"meta":{"title":"Utilisation de flux de travail personnalisés avec GitHub Pages","intro":"Vous pouvez tirer parti de l’utilisation GitHub Actions et GitHub Pages en créant un fichier de flux de travail ou en choisissant parmi les flux de travail prédéfinis.","product":"GitHub Pages","breadcrumbs":[{"href":"/fr/pages","title":"GitHub Pages"},{"href":"/fr/pages/getting-started-with-github-pages","title":"Bien démarrer"},{"href":"/fr/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages","title":"Utiliser des workflows personnalisés"}],"documentType":"article"},"body":"# Utilisation de flux de travail personnalisés avec GitHub Pages\n\nVous pouvez tirer parti de l’utilisation GitHub Actions et GitHub Pages en créant un fichier de flux de travail ou en choisissant parmi les flux de travail prédéfinis.\n\n## À propos des workflows personnalisés\n\nLes flux de travail personnalisés permettent GitHub Pages de créer des sites via l’utilisation de GitHub Actions. Vous pouvez toujours sélectionner la branche que vous souhaitez utiliser via le fichier de workflows, mais vous pouvez faire beaucoup plus en utilisant des workflows personnalisés. Pour commencer à utiliser des workflows personnalisés, vous devez d’abord les activer pour votre référentiel actuel. Pour plus d’informations, consultez « [Configuration d’une source de publication pour votre site GitHub Pages](/fr/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) ».\n\n## Configuration de l'action `configure-pages`\n\nGitHub Actions permet d’utiliser GitHub Pages grâce à l’action `configure-pages`, qui vous permet également de recueillir différentes métadonnées sur un site web. Pour plus d’informations, consultez l’action [`configure-pages`](https://github.com/marketplace/actions/configure-github-pages).\n\nPour utiliser l’action, placez cet extrait de code sous votre `jobs` dans le workflow souhaité.\n\n```yaml\n- name: Configure GitHub Pages\n  uses: actions/configure-pages@v5\n```\n\nCette action permet de prendre en charge le déploiement à partir de n’importe quel générateur de site statique vers GitHub Pages. Pour rendre ce processus moins répétitif, vous pouvez utiliser des modèles de workflow pour certains des générateurs de sites statiques les plus utilisés. Pour plus d’informations, consultez « [Utilisation de modèles de workflow](/fr/actions/how-tos/write-workflows/use-workflow-templates) ».\n\n## Configuration de l'action `upload-pages-artifact`\n\nLes actions `upload-pages-artifact` vous permettent d’empaqueter et de charger des artefacts. L’artefact GitHub Pages doit être une archive compressée `gzip` contenant un seul `tar` fichier. Le fichier `tar` doit avoir une taille inférieure à 10 Go et ne doit pas contenir de liens symboliques ou physiques. Pour plus d’informations, consultez l’action [`upload-pages-artifact`](https://github.com/marketplace/actions/upload-github-pages-artifact).\n\nPour utiliser l’action dans votre workflow actuel, placez cet extrait de code sous `jobs`.\n\n```yaml\n- name: Upload GitHub Pages artifact\n  uses: actions/upload-pages-artifact@v4\n```\n\n## Déploiement d’artefacts GitHub Pages\n\nL’action `deploy-pages` gère la configuration nécessaire au déploiement d’artefacts. Pour garantir une fonctionnalité optimale, les conditions suivantes doivent être remplies :\n\n* La tâche doit disposer d’un minimum d’autorisations `pages: write` et `id-token: write`.\n* Le paramètre `needs` doit être défini sur `id` à l’étape de génération. Le fait de ne pas définir ce paramètre peut conduire à un déploiement indépendant qui recherche continuellement un artefact qui n'a pas encore été créé.\n* Un `environment` doit être établi pour appliquer des règles de protection de branche/déploiement. L’environnement par défaut est `github-pages`.\n* Pour spécifier l’URL de la page en tant que sortie, utilisez le champ `url:`.\n\nPour plus d’informations, consultez l’action [`deploy-pages`](https://github.com/marketplace/actions/deploy-github-pages-site).\n\n```yaml\n# ...\n\njobs:\n  deploy:\n    permissions:\n      contents: read\n      pages: write\n      id-token: write\n    runs-on: ubuntu-latest\n    needs: jekyll-build\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    steps:\n      - name: Deploy artifact\n        id: deployment\n        uses: actions/deploy-pages@v4\n# ...\n```\n\n## Connexion de tâches de compilation et de déploiement distinctes\n\nVous pouvez lier vos travaux `build` et `deploy` dans un seul fichier de workflows, éliminant ainsi la nécessité de créer deux fichiers distincts pour obtenir le même résultat. Pour commencer à utiliser votre fichier de workflows, vous pouvez définir sous `jobs` des workflows `build` et `deploy` pour exécuter vos travaux.\n\n```yaml\n# ...\n\njobs:\n  # Build job\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      - name: Setup Pages\n        id: pages\n        uses: actions/configure-pages@v5\n      - name: Build with Jekyll\n        uses: actions/jekyll-build-pages@v1\n        with:\n          source: ./\n          destination: ./_site\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v4\n\n  # Deployment job\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    runs-on: ubuntu-latest\n    needs: build\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n# ...\n```\n\nDans certains cas, vous pouvez choisir de tout combiner dans une seule tâche, en particulier s'il n'est pas nécessaire de passer par un processus de build. Vous vous concentrez donc uniquement sur l’étape de déploiement.\n\n```yaml\n# ...\n\njobs:\n  # Single deploy job no building\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{steps.deployment.outputs.page_url}}\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      - name: Setup Pages\n        uses: actions/configure-pages@v5\n      - name: Upload Artifact\n        uses: actions/upload-pages-artifact@v4\n        with:\n          # upload entire directory\n          path: '.'\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n\n# ...\n```\n\nVous pouvez définir les travaux à exécuter sur différents exécuteurs, de façon séquentielle ou en parallèle. Pour plus d’informations, consultez « [Choix de ce que fait votre workflow](/fr/actions/how-tos/write-workflows/choose-what-workflows-do) »."}