Actualizar README.md
Some checks are pending
Primer flujo de trabajo CI/CD (Build, Test and Push Docker Image) para Ampliación de Entornos de Desarrollo / build-and-push (push) Waiting to run

This commit is contained in:
isidoro.nevares 2026-04-07 13:07:27 +02:00
parent a5afe7e893
commit c81d7fcb6a

View File

@ -173,61 +173,54 @@ Definir en el repositorio (**Settings → Secrets and variables → Actions**):
- **Secretos**: `DB_USER`, `DB_PASSWORD` → en la pestaña *Secrets*. - **Secretos**: `DB_USER`, `DB_PASSWORD` → en la pestaña *Secrets*.
```yaml ```yaml
name: Build, Test and Push Docker Image name: Primer flujo de trabajo CI/CD (Build, Test and Push Docker Image) para Ampliación de Entornos de Desarrollo
# ===== Triggers del workflow ===== # ===== Disparadores del workflow =====
on: on:
push: push:
branches: branches:
- '**' # Se ejecuta en cualquier rama al hacer push - '**' # Cualquier rama
# paths: # opcional: limitar a ciertos archivos
# - 'src/**'
# - 'Dockerfile'
# ===== Permisos del token automático de GitHub para que pueda "subir"(push del paso 4.) la imagen docker generada en el paso 3 al área de registro de GitHub ghcr.io/profies/aaee_mapamundi_sb =====
permissions:
contents: read
packages: write
# ===== Tareas del workflow =====
jobs: jobs:
build-and-push: build-and-push:
runs-on: ubuntu-latest # Runner proporcionado por GitHub, con Docker y Linux listo runs-on: ubuntu-latest
# ===== Pasos del job =====
steps: steps:
# ---- 1. Obtener el código del repositorio ----
# 1. Descarga código
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v3
# Descarga el código fuente del commit que disparó el workflow
# ---- 2. Preparar JDK y Maven ---- # 2. JDK/Maven para tests previos
- name: Set up JDK - name: Configución pasar TEST
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
distribution: temurin distribution: temurin
java-version: 23 java-version: 23
# Necesario si quieres compilar y testear tu proyecto Spring Boot
# ---- 3. Construir el proyecto con Maven ---- - name: Construir proyecto con Maven
- name: Build Maven project
run: mvn clean package run: mvn clean package
# Ejecuta la construcción del jar y tests (si no usas -DskipTests)
# El resultado se genera en target/*.jar
# ---- 4. Construir la imagen Docker ---- # 3. Construir la imagen Docker usando el Dockerfile
- name: Build Docker image - name: Build Docker image
run: docker build -t ghcr.io/${{ github.repository }}:latest . run: docker build -t ghcr.io/${{ github.repository }}:latest .
# Construye la imagen usando el Dockerfile del repositorio
# La etiqueta apunta a GitHub Container Registry (GHCR)
# ---- 5. Loguearse en GHCR ---- # 4. Push a GHCR (GitHub Container Registry)
- name: Push Docker image - name: Push Docker image
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} # Usuario que disparó el workflow username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} # Token temporal proporcionado por GitHub password: ${{ secrets.GITHUB_TOKEN }}
# Necesario para poder subir la imagen a GHCR
# ---- 6. Subir la imagen al registro ----
- name: Push image - name: Push image
run: docker push ghcr.io/${{ github.repository }}:latest run: docker push ghcr.io/${{ github.repository }}:latest
# Envía la imagen recién construida a GHCR con la etiqueta "latest"
``` ```
> Nunca uses `echo ${{ secrets.DB_PASSWORD }}` en logs. GitHub lo enmascara, pero sigue siendo mala práctica. > Nunca uses `echo ${{ secrets.DB_PASSWORD }}` en logs. GitHub lo enmascara, pero sigue siendo mala práctica.