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.
- Para obtener más información acerca de cómo mejorar a GitHub Enterprise Server 3.0 o superior, consulta la sección "Mejorar a GitHub Enterprise Server".
- Para obtener más información acerca de configurar las GitHub Actions después de tu mejora, consulta la documentación de 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.
Resumen
Las acciones que utilizas en tu flujo de trabajo pueden definirse en:
- Un repositorio público
- El mismo repositorio en donde tu archivo de flujo de trabajo hace referencia a la acción
- Una imagen del contenedor Docker publicada en Docker Hub
GitHub Marketplace es una ubicación central para que encuentres acciones que crea la comunidad de GitHub.
Nota: Las GitHub Actions en tu instancia de GitHub Enterprise Server podrían tener acceso limitado a las acciones en GitHub.com o en GitHub Marketplace. Para obtener más información, consulta "La comunicación entre ejecutores autoalojados y GitHub."
Utilizar la administración de lanzamientos para tus acciones personalizadas
Los creadores de una acción comunitaria tienen la opción de utilizar etiquetas, ramas, o valores de SHA para administrar los lanzamientos de la acción. Similar a cualquier dependencia, debes indicar la versión de la acción que te gustaría utilizar basándote en tu comodidad con aceptar automáticamente las actualizaciones para dicha acción.
Designarás la versión de la acción en tu archivo de flujo de trabajo. Revisa la documentación de la acción para encontrar información de su enfoque sobre la administración de lanzamientos, y para ver qué etiqueta, rama, o valor de SHA debes utilizar.
Nota: Te recomendamos que utilices un valor de SHA cuando uses acciones de terceros. Para obtener más información, consulta la sección "Fortalecimiento de seguridad para las GitHub Actions".
Utilizar etiquetas
Las etiquetas son útiles para que te permitan decidir cuándo cambiar entre versiones mayores y menores, pero son más efímeras y el mantenedor puede moverlas o borrarlas. Este ejemplo te muestra cómo seleccionar una acción que se ha marcado como v1.0.1
:
steps:
- uses: actions/javascript-action@v1.0.1
Utilizar SHAs
Si necesitas utilizar un versionamiento más confiable, debes utilizar el valor de SHA asociado con la versión de la acción. Los SHA son inmutables y, por lo tanto, más confiables que las etiquetas o las ramas. Sin embargo, este acercamiento significa que no recibirás actualizaciones para una acción automáticamente, incluyendo las correcciones de errores y actualizaciones de seguridad. Este ejemplo apunta al SHA de una acción:
steps:
- uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89
Utilizar ramas
El especificar una rama destino para la acción significa que ésta siempre ejecutará la versión que se encuentre actualmente en dicha rama. Este acercamiento puede crear problemas si una actualización a la rama incluye cambios importantes. Este ejemplo apunta a una rama que se llama @main
:
steps:
- uses: actions/javascript-action@main
Para obtener más información, consulta la sección "Utilizar la administración de lanzamientos para las acciones".
Utilizar entradas y salidas con una acción
Una acción a menudo acepta o requiere entradas y genera salidas que puedes utilizar. Por ejemplo, una acción podría requerir que especifiques una ruta a un archivo, el nombre de una etiqueta, u otros datos que utilizará como parte del procesamiento de la misma.
Para ver las entradas y salidas de una acción, revisa el action.yml
o el action.yaml
en el directorio raíz del repositorio.
En este action.yml
de ejemplo, la palabra clave inputs
define una entrada requerida que se llama file-path
, e incluye un valor predeterminado que se utilizará si ésta no se especifica. La palabra clave outputs
define una salida que se llama results-file
, la cual te dice en dónde se ubican los resultados.
name: "Example"
description: "Receives file and generates output"
inputs:
file-path: # id of input
description: "Path to test script"
required: true
default: "test-file.js"
outputs:
results-file: # id of output
description: "Path to results file"
Hacer referencia a una acción en el mismo repositorio en el que un archivo de flujo de trabajo usa la acción
Si se define una acción en el mismo repositorio en el que tu archivo de flujo de trabajo usa la acción, puedes hacer referencia a la acción con {owner}/{repo}@{ref}
o la sintaxis ./path/to/dir
en tu archivo de flujo de trabajo.
Ejemplo de estructura de archivo de repositorio:
|-- hello-world (repository)
| |__ .github
| └── workflows
| └── my-first-workflow.yml
| └── actions
| |__ hello-world-action
| └── action.yml
Ejemplo de archivo de flujo de trabajo:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Este paso revisa una copia de tu repositorio.
- uses: actions/checkout@v2
# Este paso hace referencia al directorio que contiene la acción.
- uses: ./.github/actions/hello-world-action
El archivo action.yml
se utiliza para proporcionar metadatos para la acción. Aprende sobre el contenido de este archivo en la sección "Sintaxis de metadatos para las GitHub Actions"
Hacer referencia a un contenedor en Docker Hub
Si se define una acción en una imagen de contenedor Docker publicada en Docker Hub, debes hacer referencia a la acción con la sintaxis docker://{image}:{tag}
en tu archivo de flujo de trabajo. Para proteger tu código y tus datos, te recomendamos que verifiques la integridad de la imagen del contenedor Docker de Docker Hub antes de usarla en tu flujo de trabajo.
jobs:
my_first_job:
steps:
- name: My first step
uses: docker://alpine:3.8
Para encontrar algunos ejemplos de acciones de Docker, consulta el flujo de trabajo de Docker-image.yml y la sección "Crear una acción de contenedor de Docker".
Pasos siguientes
Para seguir aprendiendo sobre las GitHub Actions, consulta la sección "Características esenciales de las GitHub Actions".