Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Crear una acción compuesta

En esta guía, aprenderás cómo crear una acción compuesta.

Nota: GitHub Actions estuvo disponible para GitHub Enterprise Server 2.22 como un beta limitado. El beta terminó. GitHub Actions está ahora disponible habitualmente en GitHub Enterprise Server 3.0 o superior. Para obtener más información, consulta la sección de notas de lanzamiento para GitHub Enterprise Server 3.0.


Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.

Introducción

En esta guía, aprenderás acerca de los componentes básicos necesarios para crear y usar una acción compuesta empaquetada. Para centrar esta guía en los componentes necesarios para empaquetar la acción, la funcionalidad del código de la acción es mínima. La acción imprime "Hello World" y después "Goodbye", o si proporcionas un nombre personalizado, imprime "Hello [who-to-greet]" y luego "Goodbye". La acción también mapea un número aleatorio hacia la variable de salida random-number, y ejecuta un script denominado goodbye.sh.

Una vez que completes este proyecto, deberías comprender cómo crear tu propia acción compuesta y probarla en un flujo de trabajo.

Advertencia: Cuando crees flujos de trabajo y acciones siempre debes considerar si tu código podría ejecutar entradas no confiables de atacantes potenciales. Se tratará a algunos contextos como una entrada no confiable, ya que un atacante podrían insertar su propio contenido malintencionado. Para obtener más información, consulta la sección "Entenderel riesgo de las inyecciones de scripts".

Prerrequisitos

Antes de que comiences, crearás un repositorio de GitHub Enterprise Server.

  1. Crea un repositorio público nuevo en tu instancia de GitHub Enterprise Server. Puedes elegir cualquier nombre de repositorio o utilizar el siguiente ejemplo de hello-world-composite-action. Puedes agregar estos archivos después de que tu proyecto se haya subido a GitHub Enterprise Server. Para obtener más información, consulta "Crear un repositorio nuevo".

  2. Clona el repositorio en tu computadora. Para obtener más información, consulta "Clonar un repositorio".

  3. Desde tu terminal, cambia los directorios en el repositorio nuevo.

    cd hello-world-composite-action
  4. En el repositorio hello-world-composite-action, crea un archivo nuevo que se llame goodbye.sh y agrega el siguiente código de ejemplo:

    echo "Goodbye"
    
  5. Desde tu terminal, haz ejecutable a goodbye.sh.

    chmod +x goodbye.sh
  6. Desde tu terminal, ingresa tu archivo goodbye.sh.

    git add goodbye.sh
    git commit -m "Add goodbye script"
    git push

Crear un archivo de metadatos de una acción

  1. En el repositorio hello-world-composite-action, crea un archivo nuevo que se llame action.yml y agrega el siguiente código de ejemplo. Para obtener más información acerca de esta sintaxis, consulta la sección de "runs para una acción compuesta".

    action.yml

    name: 'Hello World'
    description: 'Greet someone'
    inputs:
      who-to-greet:  # id of input
        description: 'Who to greet'
        required: true
        default: 'World'
    outputs:
      random-number:
        description: "Random number"
        value: ${{ steps.random-number-generator.outputs.random-id }}
    runs:
      using: "composite"
      steps:
        - run: echo Hello ${{ inputs.who-to-greet }}.
          shell: bash
        - id: random-number-generator
          run: echo "::set-output name=random-id::$(echo $RANDOM)"
          shell: bash
        - run: ${{ github.action_path }}/goodbye.sh
          shell: bash
    

    Este archivo define la entrada who-to-greet, mapea el número generado aleatoriamente en la variable de salida random-number y ejecuta el script de goodbye.sh. También le dice al ejecutor cómo ejecutar la acción compuesta.

    Para obtener más información acerca de cómo administrar las salidas, consulta la sección "outputs para las acciones compuestas".

    Para obtener más información acerca de cómo utilizar github.action_path, consulta la sección "github context".

  2. Desde tu terminal, ingresa tu archivo action.yml.

    git add action.yml
    git commit -m "Add action"
    git push
  3. Desde tu terminal, agrega una etiqueta. Este ejemplo utiliza una etiqueta que se llama v1. Para obtener más información, consulta la sección "Acerca de las acciones".

    git tag -a -m "Description of this release" v1
    git push --follow-tags

Probar tu acción en un flujo de trabajo

El siguiente código de flujo de trabajo utiliza la acción completada de "hello world" que hiciste previamente en "Crear un archivo de metadatos para la acción".

Copia el código del flujo de trabajo en un archivo de .github/workflows/main.yml en otro repositorio, pero reemplaza actions/hello-world-composite-action@v1 con el repositorio y etiqueta que creaste. También puedes reemplazar la entrada who-to-greet con tu nombre.

.github/workflows/main.yml

on: [push]

jobs:
  hello_world_job:
    runs-on: ubuntu-latest
    name: A job to say hello
    steps:
      - uses: actions/checkout@v2
      - id: foo
        uses: actions/hello-world-composite-action@v1
        with:
          who-to-greet: 'Mona the Octocat'
      - run: echo random-number ${{ steps.foo.outputs.random-number }}
        shell: bash

Desde tu repositorio, da clic en la pestaña de Acciones y selecciona la última ejecución de flujo de trabajo. La salida deberá incluir "Hello Mona the Octocat", el resultado del script de "Goodbye" y un número aleatorio.