{"meta":{"title":"Uso de flujos de trabajo personalizados con GitHub Pages","intro":"Puede aprovechar el uso de GitHub Actions y GitHub Pages creando un archivo de flujo de trabajo o eligiendo entre los flujos de trabajo predefinidos.","product":"GitHub Pages","breadcrumbs":[{"href":"/es/pages","title":"GitHub Pages"},{"href":"/es/pages/getting-started-with-github-pages","title":"Comienza"},{"href":"/es/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages","title":"Uso de flujos de trabajo personalizados"}],"documentType":"article"},"body":"# Uso de flujos de trabajo personalizados con GitHub Pages\n\nPuede aprovechar el uso de GitHub Actions y GitHub Pages creando un archivo de flujo de trabajo o eligiendo entre los flujos de trabajo predefinidos.\n\n## Acerca de los flujos de trabajo personalizados\n\nLos flujos de trabajo personalizados permiten crear sitios GitHub Pages mediante GitHub Actions. Puedes seleccionar igualmente la rama que quieres usar mediante el archivo de flujo de trabajo, pero con los flujos de trabajo personalizados podrás hacer mucho más. Para empezar a usar flujos de trabajo personalizados, primero debes habilitarlos para el repositorio actual. Para más información, consulta [Configuración de un origen de publicación para el sitio de GitHub Pages](/es/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).\n\n## Configuración de la acción `configure-pages`\n\nGitHub Actions permite usar GitHub Pages mediante la acción `configure-pages`, que también permite recopilar distintos metadatos sobre un sitio web. Para más información, vea la acción [`configure-pages`](https://github.com/marketplace/actions/configure-github-pages).\n\nPara usar la acción, coloca este fragmento de código bajo `jobs` en el flujo de trabajo deseado.\n\n```yaml\n- name: Configure GitHub Pages\n  uses: actions/configure-pages@v5\n```\n\nEsta acción ayuda a facilitar la implementación desde cualquier generador de sitios estáticos a GitHub Pages. Para que este proceso sea menos repetitivo, puede usar plantillas de flujo de trabajo para algunos de los generadores de sitios estáticos más utilizados. Para más información, consulta [Uso de plantillas de flujo de trabajo](/es/actions/how-tos/write-workflows/use-workflow-templates).\n\n## Configuración de la acción `upload-pages-artifact`\n\nLa acción `upload-pages-artifact` permite empaquetar y cargar artefactos. El artefacto GitHub Pages debe ser un archivo `gzip` comprimido que contenga un único archivo `tar`. El archivo `tar` debe tener menos de 10 GB de tamaño y no debe contener ningún vínculo simbólico o físico. Para más información, vea la acción [`upload-pages-artifact`](https://github.com/marketplace/actions/upload-github-pages-artifact).\n\nPara usar la acción en el flujo de trabajo actual, coloca este fragmento de código bajo `jobs`.\n\n```yaml\n- name: Upload GitHub Pages artifact\n  uses: actions/upload-pages-artifact@v4\n```\n\n## Despliegue de GitHub Pages artefactos\n\nLa acción `deploy-pages` controla la configuración necesaria para implementar artefactos. Para garantizar una funcionamiento correcto, es necesario cumplir los requisitos siguientes:\n\n* El trabajo debe tener como mínimo los permisos `pages: write` y `id-token: write`.\n* El parámetro `needs` debe establecerse en el `id` del paso de compilación. Si no se establece este parámetro, podría producirse una implementación independiente que busque continuamente un artefacto que no se ha creado.\n* Es necesario establecer un valor de `environment` para aplicar reglas de protección de rama o implementación. El entorno predeterminado es `github-pages`.\n* Para especificar la dirección URL de la página como salida, usa el campo `url:`.\n\nPara más información, vea la acción [`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## Vinculación de trabajos independientes de compilación e implementación\n\nPuedes vincular los trabajos `build` y `deploy` en un solo archivo de flujo de trabajo, lo que elimina la necesidad de crear dos archivos independientes para obtener el mismo resultado. Para empezar a trabajar en el archivo de flujo de trabajo, puedes definir bajo `jobs` un trabajo `build` y `deploy` para ejecutar los trabajos.\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\nEn algunos casos, puedes optar por combinarlo todo en un solo trabajo, sobre todo si no se requiere un proceso de compilación. En tal caso, solo te centrarías en el paso de implementación.\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\nPuedes establecer que los trabajos se ejecuten en ejecutores diferentes, secuencialmente o en paralelo. Para más información, consulta [Elegir qué hace tu flujo de trabajo](/es/actions/how-tos/write-workflows/choose-what-workflows-do)."}