Proyecto: Via Láctea
ViaLactea: Node.js CI Example with GitHub Actions
Este es un proyecto básico de Node.js que incluye una simple función de suma y pruebas automatizadas utilizando Jest. El proyecto está integrado con GitHub Actions para ejecutar un pipeline de CI que se activa automáticamente cada vez que se hace un push al repositorio.
Características del Proyecto
- Node.js: Una aplicación simple que suma dos números.
- Jest: Pruebas unitarias para garantizar que la función de suma funcione correctamente.
- GitHub Actions: Un pipeline CI/CD que se ejecuta con cada push al repositorio, instalando dependencias y ejecutando las pruebas.
Estructura del Proyecto
La estructura del proyecto es la siguiente:
/nodejs-ci-example ├── app.js # Código principal de la aplicación ├── package.json # Configuración de dependencias y scripts ├── package-lock.json # Archivo de bloqueo de dependencias ├── /tests # Carpeta de pruebas └── app.test.js # Pruebas unitarias con Jest
Pipeline de GitHub Actions
El pipeline CI/CD está configurado utilizando GitHub Actions. Los pasos principales son:
- Clonar el repositorio.
- Instalar dependencias: Usando
npm install
. - Ejecutar pruebas: Ejecuta
npm test
para correr las pruebas definidas con Jest.
Archivo de workflow .github/workflows/ci.yml
name: CI Pipeline on: push: branches: - "main" jobs: build: runs-on: ubuntu-latest steps: # Paso 1: Clonar el repositorio - name: Check out repository code uses: actions/checkout@v2 # Paso 2: Configurar la versión de Node.js - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' # Paso 3: Instalar dependencias - name: Install dependencies run: npm install # Paso 4: Ejecutar pruebas - name: Run tests run: npm test # Paso 5: Instalar Docker Buildx - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # Paso 6: Log in to Docker Hub (opcional) - name: Log in to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} # Paso 7: Construir imagen multiplataforma (x86_64 y ARM64) - name: Build and push Docker image run: | docker buildx create --use docker buildx build --platform linux/amd64,linux/arm64 -t malejo/vialactea:${{ github.sha }} --push .
Instalación y Ejecución Local
Prerrequisitos
Asegúrate de tener Node.js instalado en tu sistema. Puedes descargarlo desde nodejs.org.
Pasos de instalación
Clona este repositorio:
git clone https://github.com/Malejo89/ViaLactea.git
cd nodejs-ci-example
Instala las dependencias:
npm install
Ejecuta las pruebas:
npm test
Pruebas
Las pruebas están ubicadas en la carpeta tests/
y están escritas usando Jest. La prueba actual valida que la función sum()
retorne correctamente la suma de dos números.
Ejemplo de prueba (app.test.js)
const sum = require('../app'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
Contribuciones
¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar este proyecto, siéntete libre de abrir un pull request o crear un issue.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Para más detalles, consulta el archivo LICENSE.
¡Gracias por explorar este proyecto!