# Creación de plantillas de flujo de trabajo para la organización

Obtenga información sobre cómo puede crear plantillas de flujo de trabajo para ayudar a los miembros del equipo a agregar nuevos flujos de trabajo con mayor facilidad.

> \[!NOTE]
> Actualmente los ejecutores hospedados por GitHub Enterprise Server no se admiten en GitHub.

## Crear plantillas de flujo de trabajo

En este procedimiento se demuestra cómo crear una planitlla de flujo de trabajo y un archivo de metadatos. El archivo de metadatos describe cómo se presentarán las plantillas de flujo de trabajo a los usuarios cuando creen un flujo de trabajo.

1. Si aún no existe, cree un nuevo repositorio público denominado `.github` en la organización.
2. Cree un directorio llamado `workflow-templates`.
3. Crea el nuevo archivo de flujo de trabajo dentro del directorio `workflow-templates`.

   Si necesitas hacer referencia a la rama predeterminada de un repositorio, puedes usar el marcador de posición `$default-branch`. Cuando un flujo de trabajo se crea, el marcador de posición se reemplazará automáticamente con el nombre de la rama predeterminada del repositorio.

   > \[!NOTE]
   > Los siguientes valores de la clave `runs-on` también se tratan como marcadores de posición:
   >
   > *

`ubuntu-latest` se reemplaza por `[ self-hosted ]`

> \*
> `windows-latest` se reemplaza por `[ self-hosted, windows ]`
> \*
> `macos-latest` se reemplaza por `[ self-hosted, macOS ]`

Por ejemplo, este archivo denominado `octo-organization-ci.yml` muestra un flujo de trabajo básico.

```yaml copy
name: Octo Organization CI

on:
  push:
    branches: [ $default-branch ]
  pull_request:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6

      - name: Run a one-line script
        run: echo Hello from Octo Organization
```

1. Crea un archivo de metadatos dentro del directorio `workflow-templates`. El archivo de metadatos debe tener el mismo nombre que el archivo de flujo de trabajo, pero en lugar de la extensión `.yml`, se le tiene que anexar `.properties.json`. Por ejemplo, un archivo denominado `octo-organization-ci.properties.json` contiene los metadatos del archivo de flujo de trabajo denominado `octo-organization-ci.yml`.

   ```json copy
   {
       "name": "Octo Organization Workflow",
       "description": "Octo Organization CI workflow template.",
       "iconName": "example-icon",
       "categories": [
           "Go"
       ],
       "filePatterns": [
           "package.json$",
           "^Dockerfile",
           ".*\\.md$"
       ]
   }
   ```

   * `name`

   - **Obligatorio.** El nombre del flujo de trabajo. Esta se muestra en la lista de flujos de trabajo disponibles.

   * `description`

   - **Obligatorio.** La descripción del flujo de trabajo. Esta se muestra en la lista de flujos de trabajo disponibles.

   * `iconName`

   - **Opcional.** Especifica un icono para el flujo de trabajo que se muestra en la lista de flujos de trabajo.
     `iconName` puede ser uno de los siguientes tipos:
     * Un archivo SVG que se almacena en el directorio `workflow-templates`. Para hacer referencia a un archivo, el valor debe ser el nombre de archivo sin la extensión de archivo. Por ejemplo, se hace referencia a un archivo SVG denominado `example-icon.svg` como `example-icon`.
     * Un icono del conjunto de [Octicons](https://primer.style/octicons/) de GitHub. Para hacer referencia a un octicon, el valor debe ser `octicon <icon name>`. Por ejemplo: `octicon smiley`.

   * `categories`

   - **Opcional.** Define las categorías en las que se muestra el flujo de trabajo. Puede usar nombres de categoría de las listas siguientes:
     * Nombres de categoría generales del repositorio [starter-workflows](https://github.com/actions/starter-workflows/blob/main/README.md#categories).

     * Idiomas lingüistas de la lista del repositorio [linguist](https://github.com/github-linguist/linguist/blob/main/lib/linguist/languages.yml).

     * Pilas técnicas admitidas en la lista en el repositorio [starter-workflows](https://github.com/github-starter-workflows/repo-analysis-partner/blob/main/tech_stacks.yml).

   * `filePatterns`

   - **Opcional.** Permite usar el flujo de trabajo si el repositorio del usuario tiene un archivo en su directorio raíz que coincide con una expresión regular definida.

2. Para agregar otra plantilla de flujo de trabajo, agregue los archivos al mismo directorio `workflow-templates`.

## Pasos siguientes

* Para obtener información de referencia sobre las plantillas de flujo de trabajo, consulta [Reutilización de configuraciones de flujo de trabajo](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/reusing-workflow-configurations#workflow-templates).