{"meta":{"title":"Verwendung benutzerdefinierter Workflows mit GitHub Pages","intro":"Sie können die Vorteile von GitHub Actions und GitHub Pages nutzen, indem Sie eine Workflowdatei erstellen oder aus den vordefinierten Workflows auswählen.","product":"GitHub Pages","breadcrumbs":[{"href":"/de/pages","title":"GitHub Pages"},{"href":"/de/pages/getting-started-with-github-pages","title":"Erste Schritte"},{"href":"/de/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages","title":"Verwenden benutzerdefinierter Workflows"}],"documentType":"article"},"body":"# Verwendung benutzerdefinierter Workflows mit GitHub Pages\n\nSie können die Vorteile von GitHub Actions und GitHub Pages nutzen, indem Sie eine Workflowdatei erstellen oder aus den vordefinierten Workflows auswählen.\n\n## Informationen zu benutzerdefinierten Workflows\n\nBenutzerdefinierte Workflows ermöglichen es, GitHub Pages Sites mithilfe von GitHub Actions zu erstellen. Du kannst den Branch, den du verwenden möchtest, weiterhin über die Workflowdatei auswählen. Mit benutzerdefinierten Workflows hast du jedoch noch viel mehr Möglichkeiten. Um mit der Verwendung benutzerdefinierter Workflows zu beginnen, musst du sie zuerst für dein aktuelles Repository aktivieren. Weitere Informationen finden Sie unter [Eine Veröffentlichungsquelle für deine GitHub Pages-Website konfigurieren](/de/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).\n\n## Konfigurieren der Aktion `configure-pages`\n\nGitHub Actions ermöglicht die Nutzung von GitHub Pages durch die Aktion `configure-pages`, mit der Sie auch verschiedene Metadaten über eine Website erfassen können. Weitere Informationen finden Sie unter der Aktion [`configure-pages`](https://github.com/marketplace/actions/configure-github-pages).\n\nUm die Aktion zu verwenden, füge diesen Codeschnipsel unter `jobs` im gewünschten Workflow ein:\n\n```yaml\n- name: Configure GitHub Pages\n  uses: actions/configure-pages@v5\n```\n\nDiese Aktion hilft bei der Bereitstellung aus jedem statischen Website-Generator auf GitHub Pages. Um diesen Prozess weniger repetitiv zu gestalten, können Sie Workflowvorlagen für einige der am häufigsten verwendeten Generatoren für statische Websites verwenden. Weitere Informationen finden Sie unter [Verwenden von Workflowvorlagen](/de/actions/how-tos/write-workflows/use-workflow-templates).\n\n## Konfigurieren der Aktion `upload-pages-artifact`\n\nMit den Aktionen vom Typ `upload-pages-artifact` kannst du Artefakte packen und hochladen. Das GitHub Pages Artefakt sollte ein komprimiertes `gzip` Archiv sein, das eine einzelne `tar` Datei enthält. Die Datei vom Typ `tar` muss kleiner als 10 GB sein und darf keine symbolischen oder festen Links enthalten. Weitere Informationen finden Sie unter der Aktion [`upload-pages-artifact`](https://github.com/marketplace/actions/upload-github-pages-artifact).\n\nUm die Aktion in deinem aktuellen Workflow zu verwenden, füge das folgende Codeschnipsel unter `jobs` ein:\n\n```yaml\n- name: Upload GitHub Pages artifact\n  uses: actions/upload-pages-artifact@v4\n```\n\n## Bereitstellen von GitHub Pages Artefakten\n\nDie `deploy-pages` Aktion führt das erforderliche Setup zur Bereitstellung von Artefakten durch. Um die ordnungsgemäße Funktionalität sicherzustellen, müssen die folgenden Anforderungen erfüllt sein:\n\n* Der Auftrag muss mindestens über die Berechtigungen `pages: write` und `id-token: write` verfügen.\n* Der `needs`-Parameter muss auf den `id` des Buildschritts festgelegt werden. Wenn dieser Parameter nicht festgelegt wird, kann dies zu einer unabhängigen Bereitstellung führen, die kontinuierlich nach einem nicht erstellten Artefakt sucht.\n* Ein `environment` muss eingerichtet werden, um Branch-/Bereitstellungsschutzregeln zu erzwingen. Die Standardumgebung ist `github-pages`.\n* Verwende das Feld `url:`, um die URL der Seite als Ausgabe anzugeben.\n\nWeitere Informationen finden Sie unter der Aktion [`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## Verknüpfen getrennter Build- und Deploy-Aufträge\n\nDu kannst deine `build`- und `deploy`-Aufträge in einer einzelnen Workflowdatei verknüpfen, sodass nicht mehr zwei separate Dateien erstellt werden müssen, um dasselbe Ergebnis zu erzielen. Für die ersten Schritte mit deiner Workflowdatei kannst du unter `jobs` einen `build`- und `deploy`-Auftrag definieren, um deine Aufträge auszuführen.\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\nIn bestimmten Fällen entscheidest du dich ggf. dafür, alle Schritte in einem einzelnen Auftrag zu kombinieren, insbesondere wenn kein Buildprozess erforderlich ist. Folglich konzentrierst du dich ausschließlich auf den Bereitstellungsschritt.\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\nDu kannst deine Aufträge so definieren, dass sie sequenziell oder parallel auf verschiedenen Runnern ausgeführt werden. Weitere Informationen finden Sie unter [Auswählen, was in dem Workflow passiert](/de/actions/how-tos/write-workflows/choose-what-workflows-do)."}