Nota: Actualmente los ejecutores hospedados en GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.
Información general
Las GitHub Actions te permiten personalizar tus flujos de trabajo para satisfacer las necesidades específicas de tu aplicación y de tu equipo. En esta guía, presentaremos algunas de las técnicas de personalización esenciales, tales como el uso de variables, la ejecución de scripts, y el compartir datos y artefactos entre jobs.
Utilizar varibales en tus flujos de trabajo
Las GitHub Actions incluyen variables de ambiente predeterminadas para cada ejecución de flujo de trabajo. Si necesitas utilizar variables de ambiente personalizadas, puedes configurarlas en tu archivo de flujo de trabajo de YAML. En este ejemplo se muestra cómo crear variables personalizadas con los nombres POSTGRES_HOST
y POSTGRES_PORT
. Estas variables están disponibles para el script node client.js
.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Connect to PostgreSQL
run: node client.js
env:
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
Para obtener más información, vea «variables».
Agregar scripts a tu flujo de trabajo
Puede utilizar un flujo de trabajo GitHub Actions para ejecutar scripts y comandos de shell, los cuales se ejecutarán después en el ejecutor asignado. En este ejemplo se muestra cómo utilizar run
la palabra clave para ejecutar el comando npm install -g bats
en el ejecutor.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- run: npm install -g bats
Para usar un flujo de trabajo para ejecutar un script almacenado en el repositorio, primero debe consultar el repositorio en el ejecutor. Una vez hecho esto, puede usar la run
palabra clave para ejecutar el script en el ejecutor. En el ejemplo siguiente se ejecutan dos scripts, cada uno en un paso de trabajo independiente. La ubicación de los scripts en el ejecutor se especifica estableciendo un directorio de trabajo predeterminado para los comandos de ejecución. Para obtener más información, vea «Configurar los valores predeterminados para los jobs».
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: ./my-script.sh
- name: Run another script
run: ./my-other-script.sh
Los scripts en los que desee ejecutar un flujo de trabajo deben ser ejecutables. Puede hacerlo dentro del flujo de trabajo, pasando el script como argumento al intérprete que ejecutará el script (por ejemplo, run: bash script.sh
) o haciendo que el propio archivo sea ejecutable. Puede conceder al archivo el permiso de ejecución localmente mediante el comando git update-index --chmod=+x PATH/TO/YOUR/script.sh
y, a continuación, confirmar e insertar el archivo en el repositorio. Como alternativa, para los flujos de trabajo que se ejecutan en ejecutores de Linux y Mac, puede agregar un comando para conceder al archivo el permiso de ejecución en el trabajo de flujo de trabajo, antes de ejecutar el script:
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Make the script files executable
run: chmod +x my-script.sh my-other-script.sh
- name: Run the scripts
run: |
./my-script.sh
./my-other-script.sh
Para obtener más información sobre la palabra clave run
, consulte "Sintaxis del flujo de trabajo para Acciones de GitHub".
Compartir datos entre jobs
Si el trabajo genera archivos que quiere compartir con otro trabajo del mismo flujo de trabajo, o bien si quiere guardar los archivos para referencia futura, puede almacenarlos en GitHub como artefactos. Los artefactos son los archivos que se crean cuando desarrollas y pruebas tu código. Por ejemplo, los artefactos podrían incluir archivos binarios o de paquete, resultados de pruebas, capturas de pantalla o archivos de registro. Los artefactos se asocian con la ejecución del flujo de trabajo en donde se crearon y otro job puede utilizarlos. Todas las acciones y flujos de trabajo a las que se les llama desde dentro de una ejecución tienen acceso de escritura a los artefactos de dicha ejecución.
Por ejemplo, puedes crear un archivo y luego subirlo como un artefacto.
jobs:
example-job:
name: Save output
runs-on: ubuntu-latest
steps:
- shell: bash
run: |
expr 1 + 1 > output.log
- name: Upload output file
uses: actions/upload-artifact@v3
with:
name: output-log-file
path: output.log
Para descargar un artefacto de una ejecución de flujo de trabajo independiente, puede usar la acción actions/download-artifact
. Por ejemplo, puede descargar el artefacto denominado output-log-file
.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Download a single artifact
uses: actions/download-artifact@v3
with:
name: output-log-file
Para descargar un artefacto desde la misma ejecución de flujo de trabajo, el trabajo de descarga debe especificar needs: upload-job-name
para que no se inicie hasta que finalice el trabajo de carga.
Para más información sobre los artefactos, consulta "Almacenar los datos de los flujos de trabajo como artefactos".
Pasos siguientes
Para continuar el aprendizaje sobre GitHub Actions, consulta "Acerca de los flujos de trabajo".