Skip to main content

Características esenciales de Acciones de GitHub

Las GitHub Actions se diseñaron para ayudarte a crear automatizaciones robustas y dinámicas. Esta guía te mostrará cómo crear flujos de trabajo de GitHub Actions que incluyan variables de ambiente, scripts personalizados, y más.

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@v4
        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@v4
        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".