👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Sintaxis de metadatos para acciones de GitHub

Puedes crear acciones para realizar tareas en tu repositorio. Las acciones requieren un archivo de metadatos que use la sintaxis YAML.

GitHub Actions se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. GitHub Actions no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Para obtener más información, consulta la sección "Productos de GitHub".

En este artículo

Acerca de la nueva sintaxis YAML para GitHub Actions

Las acciones Docker y JavaScript requieren un archivo de metadatos. El nombre del archivo de metadatos debe ser action.yml o action.yaml. Los datos del archivo de metadatos definen las entradas, las salidas y el punto de entrada principal para tu acción.

Los archivos de metadatos de acción usan la sintaxis YAML. Si eres nuevo en YAML, puedes leer "Aprender YAML en cinco minutos".

name (nombre)

Requerido El nombre de tu acción. GitHub muestra el name (nombre) en la pestaña Actions (Acciones) para ayudarte a identificar visualmente las acciones en cada trabajo.

autor

Opcional El nombre del autor de las acciones.

descripción

Requerido Una descripción breve de la acción.

inputs (entradas)

Opcional Los parámetros de entrada te permiten especificar datos que la acción espera para usar durante el tiempo de ejecución. GitHub almacena parámetros de entrada como variables de entorno. Las Id de entrada con letras mayúsculas se convierten a minúsculas durante el tiempo de ejecución. Recomendamos usar Id de entrada en minúsculas.

Ejemplo

Este ejemplo configura dos entradas: numOctocats y octocatEyeColor. La entrada numOctocats no se requiere y se predeterminará a un valor de '1'. Se requiere la entrada octocatEyeColor y no tiene un valor predeterminado. Los archivos de flujo de trabajo que usan esta acción deben usar la palabra clave with (con) para establecer un valor de entrada para octocatEyeColor. Para obtener información sobre la sintaxis with, consulta "Sintaxis de flujo de trabajo para GitHub Actions".

inputs:
  numOctocats:
    description: 'Number of Octocats'
    required: false
    default: '1'
  octocatEyeColor:
    description: 'Eye color of the Octocats'
    required: true

Cuando especificas una entrada para una acción en un archivo de flujo de trabajo o usas un valor de entrada predeterminado, GitHub crea una variable de entorno para la entrada con el nombre INPUT_<VARIABLE_NAME>. La variable de entorno creada convierte los nombre de entrada en letras mayúscula y reemplaza los espacios con los caracteres _.

Por ejemplo, si un flujo de trabajo definió las entradas numOctocats y octocatEyeColor, el código de acción podría leer los valores de las entradas usando las variables de entorno INPUT_NUMOCTOCATS y INPUT_OCTOCATEYECOLOR.

inputs.<input_id>

Requerido Un identificador string (cadena) para asociar con la entrada. El valor de <input_id> es un mapa con los metadatos de la entrada. <input_id> debe ser un identificador único dentro del objeto inputs. El <input_id>> debe comenzar con una letra o _ y debe contener solo caracteres alfanuméricos, -, o _.

inputs.<input_id>.description

Requerido Una descripción de string del parámetro de entrada.

inputs.<input_id>.required

Requerido Un boolean (booleano) para indicar si la acción requiere el parámetro de entrada. Establecer en true cuando se requiera el parámetro.

inputs.<input_id>.default

Opcional Una string que representa el valor predeterminado. El valor predeterminado se usa cuando un parámetro de entrada no se especifica en un archivo de flujo de trabajo.

outputs (salidas)

Opcional Los parámetros de salida te permiten declarar datos que una acción establece. Las acciones que se ejecutan más tarde en un flujo de trabajo pueden usar el conjunto de datos de salida en acciones de ejecución anterior. Por ejemplo, si tuviste una acción que realizó la adición de dos entradas (x + y = z), la acción podría dar como resultado la suma (z) para que otras acciones la usen como entrada.

Si no declaras una salida en tu archivo de metadatos de acción, todavía puedes configurar las salidas y utilizarlas en un flujo de trabajo. Para obtener más información acerca de la configuración de salidas en una acción, consulta "Comandos de flujo de trabajo para GitHub Actions".

Ejemplo

outputs:
  sum: # id of the output
    description: 'The sum of the inputs'

outputs.<output_id>

Requerido Un identificador string para asociar con la salida. El valor de <output_id> es un mapa con los metadatos de la salida. El <output_id> debe ser un identificador único dentro del objeto outputs. El <output_id>> debe comenzar con una letra o _ y debe contener solo caracteres alfanuméricos, -, o _.

outputs.<output_id>.description

Requerido Una descripción de string del parámetro de salida.

runs para acciones de JavaScript

Requerido Configura la ruta al código de la acción y a la aplicación que se utiliza para ejecutar dicho código.

Ejemplo usando Node.js

runs:
  using: 'node12'
  main: 'main.js'

runs.using

Requerido La aplicación utilizada para el código especificado en main.

runs.main

Requerido El archivo que contiene tu código de acción. La aplicación especificada en using ejecuta este archivo.

pre

Opcional Te permite ejecutar un script al inicio de un job, antes de que la acción main: comience. Por ejemplo, puedes utilizar pre: para ejecutar un script de configuración de pre-requisitos. La aplicación especificada con la sintaxis using (mediante) ejecutará este archivo. La acción pre: siempre se ejecuta predeterminadamente pero puedes invalidarla utilizando pre-if.

En este ejemplo, la acción pre: ejecuta un script llamado setup.js:

runs:
  using: 'node12'
  pre: 'setup.js'
  main: 'index.js'
  post: 'cleanup.js'

pre-if

Opcional Te permite definir las condiciones para la ejecución de la acción pre:. La acción pre: únicamente se ejecutará si se cumplen las condiciones en pre-if. Si no se configura, pre-if se configurará predefinidamente como always(). Nota que el contexto step no está disponible, ya que no se ha ejecutado ningún paso todavía.

En este ejemplo, cleanup.js se ejecuta únicamente en los ejecutores basados en linux:

  pre: 'cleanup.js'
  pre-if: 'runner.os == linux'

post

Opcional Te permite ejecutar un script al final de un job, una vez que se haya completado la acción main:. Por ejemplo, puedes utilizar post: para finalizar algunos procesos o eliminar los archivos innecesarios. La aplicación especificada con la sintaxis using (mediante) ejecutará este archivo.

En este ejemplo, la acción post: ejecuta un script llamado cleanup.js:

runs:
  using: 'node12'
  main: 'index.js'
  post: 'cleanup.js'

La acción post: siempre se ejecuta predeterminadamente, pero la puedes invalidar utilizando post-if.

post-if

Opcional Te permite definir condiciones para la ejecución de la acción post:. La acción post únicamente se ejecutará si se cumplen las condiciones en post-if. Si no se configura, pre-if se configurará predeterminadamente como always().

Por ejemplo, este cleanup.js únicamente se ejecutará en ejecutores basados en Linux:

  post: 'cleanup.js'
  post-if: 'runner.os == linux'

runs para acciones de Docker

Requerido Configura la imagen que se utiliza para la acción de Docker.

Ejemplo de uso de un Dockerfile en tu repositorio

runs: 
  using: 'docker'
  image: 'Dockerfile'

Ejemplo usando un contenedor de registro Docker público

runs: 
  using: 'docker'
  image: 'docker://debian:stetch-slim'

runs.using

Requerido Debes configurar este valor como 'docker'.

pre-entrypoint

Opcional Te permite ejecutar un script antes de que comience la acción entrypoint. Por ejemplo, puedes utilizar pre-entrypoint para ejecutar un script de configuración de pre-requisitos. GitHub Actions utiliza docker run para lanzar esta acción, y ejecuta el script dentro de un contenedor nuevo que utiliza la misma imagen base. Esto significa que el estado del tiempo de ejecución difiere de el contenedor principal entrypoint, y se deberá acceder a cualquier estado que requieras ya sea en el espacio de trabajo, HOME, o como una variable STATE_. La acción pre-entrypoint: siempre se ejecuta predeterminadamente pero la puedes invalidar utilizando pre-if.

La aplicación especificada con la sintaxis using (mediante) ejecutará este archivo.

En este ejemplo, la acción pre.entrypoint: ejecuta un script llamado setup.sh:

runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
  - 'bzz'
  pre-entrypoint: 'setup.sh'
  entrypoint: 'main.sh'

runs.image

Requerido La imagen de Docker a utilizar como el contenedor para ejecutar la acción. El valor puede ser el nombre de la imagen base de Docker, un Dockerfile local en tu repositorio, o una imagen pública en Docker Hub u otro registro. Para hacer referencia a un Dockerfile local en tu repositorio, usa una ruta relativa a tu archivo de metadatos de acción. La aplicación docker ejecutará este archivo.

runs.env

Opcional Especifica mapa clave/de valores de las variables del ambiente para configurar en el ambiente del contenedor.

runs.entrypoint

Opcional Invalida el ENTRYPOINT de Docker en el Dockerfile, o lo configura si no se había especificado anteriormente. Utiliza entrypoint cuando el Dockerfile no especifique un ENTRYPOINT o cuando quieras invalidar la instrucción de ENTRYPOINT. Si omites el entrypoint, se ejecutarán los comandos que especifiques en la instrucción ENTRYPOINT de Docker. La instrucción ENTRYPOINT de Docker tiene una forma de shell y una de exec. La documentación de ENTRYPOINT de Docker recomienda utilizar la forma de exec de la instrucción ENTRYPOINT.

Para obtener más información acerca de cómo se ejecuta el entrypoint, consulta la sección "Soporte de Dockerfile para GitHub Actions".

post-entrypoint

Opcional Te permite ejecutar un script de limpieza una vez que se haya completado la acción de runs.entrypoint. GitHub Actions utiliza docker run para lanzar esta acción. Ya que GitHub Actions ejecuta el script dentro de un contenedor nuevo utilizando la misma imagen base, el estado de tiempo de ejecución es diferente del contenedor principal de entrypoint. Puedes acceder a cualquier estado que necesites, ya sea en el espacio de trabajo, HOME, o como una variable STATE_. La acción post-entrypoint: siempre se ejecuta predeterminadamente, pero puedes invalidarla utilizando post-if.

runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
  - 'bzz'
  entrypoint: 'main.sh'
  post-entrypoint: 'cleanup.sh'

runs.args

Opcional Una matriz de secuencias que defina las entradas para un contenedor de Docker. Las entradas pueden incluir cadenas codificadas de forma rígida. GitHub comunica los argsen el ENTRYPOINT del contenedor cuando se inicia el contenedor.

Los args se usan en el lugar de la instrucción CMD en un Dockerfile. Si usas CMD en tu Dockerfile, usa los lineamientos ordenados por preferencia:

  1. Los documentos requerían argumentos en el README de las acciones y las omiten desde la instrucción CMD.
  2. Usa los valores predeterminados que permiten usar la acción sin especificar ningún args.
  3. Si la acción expone una marca de --help, o algo similar, utilízala para hacer tu propia documentación de la acción.

Si necesitas pasar variables de ambiente a una acción, asegúrate que ésta ejecute un shell de comandos para realizar la sustitución de variables. Por ejemplo, si se configura tu atributo entrypoint como "sh -c", entoces args se ejecutará en un shell de comandos. Como alternativa, si tu Dockerfile utiliza un ENTRYPOINT para ejecutar el mismo comando ("sh -c"), entonces args se ejecutará en un shell de comandos.

Para obtener más información sobre el uso de la instrucción CMD con GitHub Actions, consulta la sección "Soporte de Dockerfile para GitHub Actions".

Ejemplo
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - ${{ inputs.greeting }}
    - 'foo'
    - 'bar'

branding (marca)

Puedes usar un color y un icono Pluma para crear un distintivo para personalizar y distinguir tu acción. Las insignias se muestran junto al nombre de tu acción en Mercado GitHub.

Ejemplo

branding:
  icon: 'award'  
  color: 'green'

branding.color

El color de fondo de la insignia. Puede ser: blanco, amarillow, azul, verde, anaranjado, rojo, púrpura o gris oscuro.

branding.icon

El nombre del icono de Pluma que se debe usar.

actividad radiodifusión alerta-círculo alerta-octágono
alerta-triángulo alinear-centro alinear-justificar alinear-izquierda
alinear-derecha ancla apertura archivar
flecha-abajo-círculo flecha-abajo-izquierda flecha-abajo-derecha flecha-abajo
flecha-izquierda-círculo flecha-izquierda flecha-derecha-círculo flecha-derecha
flecha-arriba-círculo flecha-arriba-izquierda flecha-arriba-derecha flecha-arriba
en-cartel premio barra-cuadro-2 barra-cuadro
batería-carga batería campana-apagado campana
bluetooth negrita libro-abierto libro
marcador caja maletín calendario
cámara-apagado cámara molde verificar-círculo
verificar-cuadrado verificar comilla angular-abajo comilla angular-izquierda
comillas angulares-derehca comilla angular- arriba comillas angulares-abajo comillas angulares-izquierda
comillas angulares-derecha comillas angulares- arriba círculo portapapeles
reloj nube-llovizna nube-rayo nube-apagado
nube-lluvia nube-nieve nube código
comando brújula copiar ángulo-abajo-izquierdo
ángulo-abajo-derecho ángulo-izquierdo-abajo ángulo-arriba-izquierdo ángulo-derecho-abajo
ángulo-derecho-arriba ángulo-arriba-izquierdo ángulo-arriba-derecha cpu
tarjeta-de-crédito cortar punto de mira base de datos
eliminar disco dólar-signo descargar-nube
descargar gota editar-2 editar-3
editar externo-enlace desviar la mirada ojo
facebook avance rápido pluma archivo-menos
archivo-más archivo-texto archivo película
filtro bandera carpeta-menos carpeta-más
carpeta obsequio git-rama git-confirmar
git-fusionar git-solicitud-extracción globo cuadrícula
disco-duro hash auriculares corazón
ayuda-círculo hogar imagen bandeja de entrada
info cursiva capas diseño
vida-boya enlace-2 enlace lista
cargador bloquear iniciar-sesión cerrar-sesión
correo asignar-pin asignar maximizar-2
maximizar menú mensaje-círculo mensaje-cuadrado
mic-apagado mic minimizar-2 minimizar
menos-círculo menos-cuadrado menos monitor
luna más-horizontal más-vertical mover
música navegación-2 navegación octágono
paquete sujetapapeles pausa-círculo pausar
porcentaje llamada-telefónica teléfono-transferencia teléfono-entrante
teléfono-perdido teléfono-apagado teléfono-salida teléfono
gráfico-circular reproducir-círculo reproducir más-círculo
más-cuadrado más bolsillo potencia
impresora radio actualizar-ccw actualizar-cw
repetir retroceder rotar-ccw rotar-cw
rss guardar tijeras buscar
enviar servidor parámetros compartir-2
compartir escudo-apagar escudo bolsa-de-compras
carro-de-compras aleatorio barra lateral omitir-atrás
omitir-adelante barra deslizadores smartphone
parlante cuadrado estrella detener-círculo
sol amanecer atardecer tablet
etiqueta destino terminal termómetro
pulgares-abajo pulgares-arriba alternar-izquierda alternar-derecha
papelera-2 papelera tendencia-abajo tendencia-arriba
triángulo camión TV type
paraguas subrayar desbloquear cargar-nube
cargar usuario-comprobar usuario-menos usuario-más
usuario-x usuario usuarios video-apagar
video correo de voz volumen-1 volumen-2
volumen-x volumen ver wifi-apagar
wifi viento x-círculo x-cuadrado
x destruir-apagado destruir acercarse
alejarse

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos