Diferencia entre revisiones de «Proyecto: Via Láctea»

De MCC™ Wiki
Página creada con «# Create the required MediaWiki formatted content for the given project. mediawiki_content = """ == 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 === * '…»
 
Sin resumen de edición
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
# Create the required MediaWiki formatted content for the given project.
mediawiki_content = """
== ViaLactea: Node.js CI Example with GitHub Actions ==
== 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.
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.
Este código define una función para sumar dos números, una función que genera dos números aleatorios y suma, y un bucle que ejecuta esta suma cada 2 segundos si el archivo se ejecuta directamente. Las funciones también se exportan para ser usadas en otros archivos, como en pruebas unitarias.


=== Características del Proyecto ===
=== Características del Proyecto ===
Línea 14: Línea 14:


La estructura del proyecto es la siguiente:
La estructura del proyecto es la siguiente:
<code>
<pre>
/nodejs-ci-example
/nodejs-ci-example
   ├── app.js                  # Código principal de la aplicación
   ├── app.js                  # Código principal de la aplicación
Línea 21: Línea 21:
   ├── /tests                    # Carpeta de pruebas
   ├── /tests                    # Carpeta de pruebas
       └── app.test.js          # Pruebas unitarias con Jest
       └── app.test.js          # Pruebas unitarias con Jest
</code>
</pre>


=== Pipeline de GitHub Actions ===
=== Pipeline de GitHub Actions ===
Línea 91: Línea 91:
Clona este repositorio:
Clona este repositorio:
<code>
<code>
git clone https://github.com/usuario/nodejs-ci-example.git
git clone https://github.com/Malejo89/ViaLactea.git
cd nodejs-ci-example
cd nodejs-ci-example
</code>
</code>


Instala las dependencias:
Instala las dependencias:
<code>
<pre>
npm install
npm install
</code>
</pre>


Ejecuta las pruebas:
Ejecuta las pruebas:
<code>
<pre>
npm test
npm test
</code>
</pre>


=== Pruebas ===
=== Pruebas ===
Línea 110: Línea 110:


==== Ejemplo de prueba (app.test.js) ====
==== Ejemplo de prueba (app.test.js) ====
<code>
<pre>
const sum = require('../app');
const { sum, generateAndSum } = require('../app');


// Test para la función sum
test('adds 1 + 2 to equal 3', () => {
test('adds 1 + 2 to equal 3', () => {
   expect(sum(1, 2)).toBe(3);
   expect(sum(1, 2)).toBe(3);
});
});
</code>
 
// Test para generar números aleatorios y sumarlos (opcional)
test('should generate two numbers and return their sum', () => {
  // Fijamos los números aleatorios
  const randomNum1 = 50;
  const randomNum2 = 30;
  const result = sum(randomNum1, randomNum2);
  expect(result).toBe(80); // 50 + 30
});
</pre>


=== Contribuciones ===
=== Contribuciones ===

Revisión actual - 17:55 10 sep 2024

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.

Este código define una función para sumar dos números, una función que genera dos números aleatorios y suma, y un bucle que ejecuta esta suma cada 2 segundos si el archivo se ejecuta directamente. Las funciones también se exportan para ser usadas en otros archivos, como en pruebas unitarias.

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:

  1. Clonar el repositorio.
  2. Instalar dependencias: Usando npm install.
  3. 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, generateAndSum } = require('../app');

// Test para la función sum
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

// Test para generar números aleatorios y sumarlos (opcional)
test('should generate two numbers and return their sum', () => {
  // Fijamos los números aleatorios
  const randomNum1 = 50;
  const randomNum2 = 30;
  const result = sum(randomNum1, randomNum2);
  expect(result).toBe(80); // 50 + 30
});

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!