Definir un trabajo de compilación (build job)
Primero, limpiaremos nuestro flujo de trabajo (workflow) existente para tener un trabajo de build enfocado. Simplificaremos la estrategia de matriz (matrix strategy) del laboratorio anterior para mayor claridad, volviendo a una única versión para mantener el foco en las dependencias de los trabajos.
- En la página de tu repositorio de GitHub para
github-actions-demo, haz clic en el botón verde Code.
- 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.
- Abre la terminal en el entorno LabEx. La ruta predeterminada es
~/project.
- 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
Salida de Ejemplo:
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- Navega al repositorio clonado:
cd ~/project/github-actions-demo
-
Crea un nuevo archivo de flujo de trabajo .github/workflows/job-dependencies.yml usando el editor WebIDE. Puedes encontrar el archivo en el explorador de archivos a la izquierda bajo project/github-actions-demo/.github/workflows/.
-
Comienza creando la estructura básica del flujo de trabajo. Agrega el nombre del flujo de trabajo y el disparador (trigger):
name: Job Dependencies
on: [push]
- Agrega la sección de trabajos (
jobs) y define el trabajo de compilación (build) con su ejecutor (runner):
jobs:
build:
runs-on: ubuntu-latest
- Agrega la sección de pasos (
steps). Primero, agrega el paso de checkout para obtener el código del repositorio:
steps:
- uses: actions/checkout@v4
- Agrega el paso de configuración de Node.js:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- Agrega el paso para instalar dependencias:
- name: Install dependencies
run: npm install
- Agrega el paso para ejecutar pruebas:
- name: Run tests
run: npm test
- Agrega el paso de compilación que crea el directorio y el archivo de artefacto (artifact):
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- Finalmente, agrega el paso de carga de artefacto (
Upload artifact). Este paso es crucial porque guarda la salida de la compilación para que el siguiente trabajo pueda usarla:
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Tu archivo completo debería verse ahora así:
name: Job Dependencies
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Explicación
- Eliminamos la estrategia
matrix por simplicidad.
- Mantuvimos el paso
Upload build artifact. ¡Esto es crucial porque el siguiente trabajo necesitará estos archivos!
Guarda el archivo (Ctrl+S o Cmd+S) después de realizar los cambios.