Ejecución de Comandos Simples en GitHub Actions

GitBeginner
Practicar Ahora

Introducción

GitHub Actions es una plataforma de integración continua y entrega continua (CI/CD) que le permite automatizar su canalización (pipeline) de compilación, prueba y despliegue. Puede crear flujos de trabajo (workflows) que compilen y prueben cada solicitud de extracción (pull request) a su repositorio, o que desplieguen las solicitudes de extracción fusionadas a producción.

Un flujo de trabajo es un proceso automatizado configurable que ejecutará uno o más trabajos (jobs). Los flujos de trabajo se definen mediante un archivo YAML registrado en su repositorio y se ejecutarán cuando sean activados por un evento en su repositorio, o pueden ser activados manualmente o en un horario definido.

En este laboratorio, aprenderá los bloques de construcción fundamentales de un flujo de trabajo de GitHub Actions:

  1. Definir un trabajo (job).
  2. Especificar el entorno del ejecutor (runner environment) (ej. Ubuntu).
  3. Añadir pasos (steps) para ejecutar comandos.

Creará un flujo de trabajo simple que imprima "Hello, World!" en la consola. Este laboratorio se basa en el repositorio que creó en los laboratorios anteriores. Clonará el repositorio github-actions-demo y actualizará un archivo de flujo de trabajo existente.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Añadir la clave runs-on con ubuntu-latest en el trabajo build

En este paso, clonarás el repositorio y actualizarás un archivo de flujo de trabajo (workflow) existente para definir un trabajo (job) y especificar el sistema operativo en el que debe ejecutarse.

  1. En la página de tu repositorio de GitHub para github-actions-demo, haz clic en el botón verde Code.
  2. Asegúrate de que la pestaña HTTPS esté seleccionada y copia la URL. Debería verse como https://github.com/your-username/github-actions-demo.git.
  3. Abre la terminal en el entorno LabEx. La ruta predeterminada es ~/project.
  4. Usa el comando git clone para descargar el repositorio. Reemplaza your-username con tu nombre de usuario real de GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
  1. Navega al repositorio clonado:
cd ~/project/github-actions-demo
  1. Crea un nuevo archivo de flujo de trabajo llamado simple-commands.yml en el directorio .github/workflows:
touch .github/workflows/simple-commands.yml
  1. Abre el archivo .github/workflows/simple-commands.yml en el WebIDE. Puedes encontrarlo en el explorador de archivos del lado izquierdo.

  2. Añade el siguiente contenido al archivo para definir el nombre del flujo de trabajo, el disparador (trigger), el trabajo y el ejecutor (runner):

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

La palabra clave runs-on te permite especificar el tipo de máquina en la que se ejecutará el trabajo. GitHub proporciona ejecutores alojados (hosted runners) para Linux, Windows y macOS. ubuntu-latest es un ejecutor comúnmente utilizado que proporciona un entorno Ubuntu estándar.

Añadir la sección steps debajo del trabajo build

Ahora que has definido el entorno del trabajo (job environment), necesitas definir qué hace realmente el trabajo. Esto se realiza utilizando la palabra clave steps.

Un trabajo contiene una secuencia de tareas llamadas steps. Los pasos pueden ejecutar comandos, ejecutar tareas de configuración (setup tasks) o ejecutar una acción (action) en tu repositorio.

Instrucciones

  1. Abre .github/workflows/simple-commands.yml en el WebIDE.
  2. Añade la palabra clave steps debajo del trabajo (job) build.

Actualiza tu archivo para que se vea así:

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:

Asegúrate de que steps: esté al mismo nivel de sangría que runs-on:.

Añadir un paso con nombre 'Echo Hello' y ejecutar echo "Hello, World!"

En este paso, añadirás múltiples tareas a la sección steps para ejecutar varios comandos shell. Esto demuestra que puedes ejecutar comandos estándar de Linux en el runner.

Instrucciones

  1. Abre .github/workflows/simple-commands.yml en el WebIDE.
  2. Añade los siguientes pasos bajo la clave steps::
steps:
  - name: Echo Hello
    run: echo "Hello, World!"

  - name: Show Date
    run: date

  - name: List Files
    run: ls -la

Tu archivo completo debería verse así:

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Echo Hello
        run: echo "Hello, World!"

      - name: Show Date
        run: date

      - name: List Files
        run: ls -la

Explicación

  • echo "Hello, World!": Imprime texto en la consola.
  • date: Muestra la fecha y hora actuales en el runner.
  • ls -la: Lista los archivos en el directorio actual. Notarás que el directorio está mayormente vacío porque aún no hemos hecho checkout del código (lo haremos en el siguiente laboratorio).

Hacer commit y push del archivo de flujo de trabajo actualizado

Los flujos de trabajo (workflows) de GitHub Actions forman parte del código de tu repositorio. Para activar el flujo de trabajo, necesitas confirmar (commit) los cambios y subirlos (push) a GitHub.

  1. Asegúrate de estar en el directorio del repositorio:
cd ~/project/github-actions-demo
  1. Prepara (stage) el nuevo archivo de flujo de trabajo:
git add .github/workflows/simple-commands.yml
  1. Confirma los cambios con un mensaje descriptivo:
git commit -m "Add simple commands workflow"

Salida de Ejemplo:

[main ... ] Add simple commands workflow
 1 file changed, 14 insertions(+)
 create mode 100644 .github/workflows/simple-commands.yml
  1. Sube los cambios al repositorio remoto en GitHub:
git push

Nota sobre la Autenticación:
Cuando ejecutas git push, el WebIDE te pedirá automáticamente que te autentiques. Sigue estos pasos detallados:

  1. Aparecerá una ventana emergente con el mensaje: "The extension 'GitHub' wants to sign in using GitHub." Haz clic en Allow.
  2. Aparecerá una nueva notificación. Haz clic en "Copy&Continue to GitHub", y luego haz clic en "Open" en la siguiente solicitud.
  3. Inicia sesión en tu cuenta de GitHub en la ventana del navegador que se abre e introduce el código de autorización que se copió. Después de confirmar la autorización, la página se cerrará automáticamente.
  4. Espera unos segundos y verás que la terminal completa la operación de subida (push) con éxito.

Nota de Privacidad: El WebIDE solicitará acceso completo a tu cuenta de GitHub con fines de autenticación. No tienes que preocuparte por problemas de privacidad: la VM de LabEx se destruirá inmediatamente después de completar el laboratorio actual, y tus credenciales e información de autorización no se conservarán.

Este proceso de autenticación no requiere la configuración manual de nombre de usuario o Personal Access Token.

Salida de Ejemplo:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 447 bytes | 447.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   abcdef1..1234567  main -> main

Ver los registros de ejecución del flujo de trabajo en la pestaña GitHub Actions

Después de subir (push) tu código, el flujo de trabajo se activará automáticamente en GitHub. Puedes ver los registros de la ejecución del flujo de trabajo para saber qué sucedió.

  1. Visita tu repositorio en GitHub en un navegador web: https://github.com/your-username/github-actions-demo
  2. Haz clic en la pestaña Actions en la parte superior de la página del repositorio.
  3. Deberías ver una ejecución de flujo de trabajo listada, probablemente llamada "Simple Commands" o "Add simple commands workflow".

Nota: Cuando subes código, se pueden activar múltiples Acciones (Actions) si tienes varios archivos de flujo de trabajo en tu repositorio. Por favor, identifica la ejecución correcta del flujo de trabajo verificando el nombre del flujo de trabajo en la barra lateral izquierda o usando la lista de ejecuciones del flujo de trabajo en el lado derecho.

  1. Haz clic en el título de la ejecución del flujo de trabajo y luego haz clic en el trabajo (job) build.
  2. Expande los pasos Echo Hello, Show Date y List Files para ver su salida.

Notarás que List Files muestra un directorio vacío (excepto por archivos ocultos como . y ..), lo que demuestra que el runner comienza con un entorno limpio (clean slate).

GitHub Actions logs
GitHub Actions tab

Resumen

En este laboratorio, ha creado con éxito un flujo de trabajo de GitHub Actions que ejecuta múltiples comandos shell. Aprendió a:

  1. Definir un Trabajo (Job): Creó un trabajo llamado build.
  2. Seleccionar un Ejecutor (Runner): Utilizó runs-on: ubuntu-latest.
  3. Ejecutar Múltiples Comandos: Agregó pasos para ejecutar echo, date y ls.
  4. Observar el Entorno del Ejecutor: Vio que el ejecutor comienza con un directorio vacío.

En el próximo laboratorio, aprenderá a usar la Acción Checkout (Checkout Action) para acceder a los archivos de su repositorio dentro del ejecutor.