Administración de acciones y flujos de trabajo
Aquí explorará las distintas herramientas y estrategias disponibles en GitHub Enterprise Cloud y GitHub Enterprise Server para compartir los flujos de trabajo y las acciones de GitHub y administrar su uso dentro de su empresa.
El contenido se estructura en torno al nivel en el que están disponibles las herramientas presentadas: empresarial u organizativo.
Nivel empresarial
Configuración de una directiva de uso de Acciones de GitHub
Los flujos de trabajo de las Acciones de GitHub suelen contener acciones, que son conjuntos de comandos independientes que se ejecutan dentro del flujo de trabajo. Al crear un flujo de trabajo, puede crear sus propias acciones o hacer referencia a acciones públicas de la comunidad disponibles en el marketplace de GitHub. Por este motivo, la configuración de una directiva de uso para flujos de trabajo y acciones en la empresa es esencial para evitar que los usuarios usen acciones malintencionadas de terceros.
Tiene varias opciones en Enterprise Cloud para configurar una directiva, así como en Enterprise Server si GitHub Connect está habilitado en la configuración de la empresa.
Para configurar una directiva de uso de Acciones de GitHub para la empresa, vaya a su cuenta empresarial y, a continuación, a Directivas > Acciones en la barra lateral. Deberían aparecer las siguientes opciones.
La lista desplegable de la parte superior con la etiqueta Enable for all organizations (Habilitar para todas las organizaciones) le permite decidir qué organizaciones de la empresa pueden usar Acciones de GitHub (todas ellas, algunas o ninguna), mientras que las tres opciones siguientes le permiten definir el nivel de restricción de las Acciones de GitHub dentro de estas organizaciones.
Si quiere habilitar solo acciones específicas que se usarán en la empresa, seleccione Permitir empresa y seleccionar flujos de trabajo no empresariales, de acciones y reutilizables y elija la opción correspondiente a su caso de uso.
Sincronización manual de acciones públicas para Enterprise Server
La mayoría de Acciones creadas por GitHub se incluyen automáticamente con Enterprise Server y se capturan en un momento dado desde el marketplace de GitHub. Incluyen actions/checkout
, actions/upload-artifact
, actions/download-artifact
, actions/labeler
y varias acciones de actions/setup-
, entre otras. Para obtener todas las acciones oficiales incluidas en la instancia de empresa, vaya a la organización de acciones de la instancia: https://HOSTNAME/actions..
Como se mencionó en la sección Configuración de una directiva de uso de Acciones de GitHub, es posible configurar Enterprise Server para acceder automáticamente a las acciones públicas disponibles en el marketplace de GitHub y configurar una directiva de uso para ellas. Sin embargo, si quiere un control más estricto sobre las acciones públicas que deben estar disponibles en su empresa, puede descargar y sincronizar manualmente las acciones en la instancia empresarial mediante la herramienta actions-sync
.
Nivel de la organización
Documentación de estándares corporativos
La creación de un flujo de trabajo de Acciones de GitHub suele implicar la escritura de varios archivos y la creación de varios repositorios para especificar el flujo de trabajo en sí. La creación también incluye las acciones, contenedores o ejecutores que se van a usar en el flujo de trabajo. En función del número de usuarios de la instancia de Enterprise Cloud o Enterprise Server, es posible que se genere desorden si no dispone de estándares corporativos para crear flujos de trabajo de Acciones de GitHub.
Como procedimiento recomendado, es preferible documentar lo siguiente en una wiki de GitHub o incluirlo en un archivo Markdown de un repositorio accesible para todos los usuarios de la organización:
- Repositorios para el almacenamiento
- Convenciones de nomenclatura de archivos o carpetas
- Ubicación de los componentes compartidos
- Planes de mantenimiento continuo
- Guías para la contribución
Creación de plantillas de flujo de trabajo
Las plantillas de flujo de trabajo son una excelente manera de garantizar que la automatización se reutiliza y mantiene en la empresa. Tanto en Enterprise Cloud como en Enterprise Server, los usuarios con acceso de escritura al repositorio .github
de una organización pueden crear plantillas de flujo de trabajo que estarán disponibles para su uso para el resto de miembros de la organización con el mismo acceso de escritura. A continuación, las plantillas de flujo de trabajo se pueden usar para crear nuevos flujos de trabajo en los repositorios públicos y privados de la organización.
La creación de una plantilla de flujo de trabajo se realiza en dos pasos:
Creación de un flujo de trabajo
yml
.Cree un archivo
json
de metadatos que describa cómo se debe presentar la plantilla a los usuarios al crear un flujo de trabajo.Nota:
El archivo de metadatos debe tener el mismo nombre que el del flujo de trabajo. En lugar de la extensión
.yml
, se debe anexar con.properties.json
. Por ejemplo, un archivo denominadoocto-organization-ci.properties.json
contiene los metadatos del archivo de flujo de trabajo denominadoocto-organization-ci.yml
.
Ambos archivos deben colocarse en un repositorio .github
público y en un directorio denominado workflow-templates
. Es posible que tenga que crear estos objetos si aún no existen en la organización.
A continuación, se muestra un ejemplo de un archivo de flujo de trabajo básico:
name: Octo Organization CI
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello from Octo Organization
Tenga en cuenta que el archivo anterior usa un marcador de posición $default-branch
. Cuando se crea un flujo de trabajo mediante la plantilla, este marcador de posición se reemplaza automáticamente por el nombre de la rama predeterminada del repositorio.
A continuación, se muestra el archivo de metadatos que crearía para el archivo de flujo de trabajo:
{
"name": "Octo Organization Workflow",
"description": "Octo Organization CI workflow template.",
"iconName": "example-icon",
"categories": [
"Go"
],
"filePatterns": [
"package.json$",
"^Dockerfile",
".*\\.md$"
]
}
Los archivos de metadatos usan los parámetros siguientes:
Parámetro | Descripción | Obligatorio |
---|---|---|
name |
Nombre de la plantilla de flujo de trabajo que se muestra en la lista de plantillas disponibles. | Sí |
description |
Descripción de la plantilla de flujo de trabajo que se muestra en la lista de plantillas disponibles. | Sí |
iconName |
Define un icono para la entrada del flujo de trabajo en la lista de plantillas. Debe ser un icono SVG del mismo nombre y debe almacenarse en el directorio workflow-templates . Por ejemplo, se hace referencia a un archivo SVG denominado example-icon.svg como example-icon . |
No |
categories |
Define la categoría de idioma del flujo de trabajo. Cuando un usuario ve las plantillas disponibles, las que coinciden con el mismo idioma se mostrarán de forma más destacada. | No |
filePatterns |
Permite usar la plantilla si el repositorio del usuario tiene un archivo en su directorio raíz que coincide con una expresión regular definida. | No |
Una vez creada una plantilla de flujo de trabajo, los usuarios de la organización pueden encontrarla en Acciones > Nuevo flujo de trabajo > Flujos de trabajo creados por _nombre_de_organización.