Administración de acciones y flujos de trabajo

Completado

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.

Captura de la pantalla

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.

Captura de la pantalla

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:

  1. Creación de un flujo de trabajo yml.

  2. 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 denominado octo-organization-ci.properties.json contiene los metadatos del archivo de flujo de trabajo denominado octo-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.
description Descripción de la plantilla de flujo de trabajo que se muestra en la lista de plantillas disponibles.
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.

Ejemplo de plantilla de flujo de trabajo.