|
1 | | -name: CI/CD Pipeline for Docker and Render Deployment |
| 1 | +name: CI/CD Pipeline for Deployment |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
|
7 | 7 | branches: [ "main" ] |
8 | 8 |
|
9 | 9 | jobs: |
10 | | - trigger_maven_build: |
| 10 | + deployment: |
11 | 11 | runs-on: ubuntu-latest |
12 | 12 | steps: |
| 13 | + # Paso 1: Checkout del código fuente del repositorio |
13 | 14 | - name: Checkout code |
14 | 15 | uses: actions/checkout@v4 |
15 | 16 |
|
| 17 | + # Paso 2: Configuración de JDK 17 para la construcción de Maven |
16 | 18 | - name: Set up JDK 17 |
17 | 19 | uses: actions/setup-java@v3 |
18 | 20 | with: |
19 | | - java-version: '17' |
20 | | - distribution: 'temurin' |
| 21 | + java-version: '17' # Usamos Java 17 |
| 22 | + distribution: 'temurin' # Usamos la distribución Temurin de OpenJDK |
21 | 23 |
|
| 24 | + # Paso 3: Construcción del proyecto usando Maven (sin pruebas y perfil docker) |
22 | 25 | - name: Build with Maven |
23 | 26 | run: mvn clean package -DskipTests -P docker -f pom.xml |
24 | 27 |
|
25 | | - trigger_docker_build: |
26 | | - runs-on: ubuntu-latest |
27 | | - needs: trigger_maven_build |
28 | | - steps: |
29 | | - - name: Checkout code |
30 | | - uses: actions/checkout@v4 |
31 | | - |
| 28 | + # Paso 4: Configuración de Docker Buildx (para la construcción multiplataforma de imágenes Docker) |
32 | 29 | - name: Set up Docker Buildx |
33 | 30 | uses: docker/setup-buildx-action@v2 |
34 | 31 |
|
| 32 | + # Paso 5: Construcción de la imagen Docker |
35 | 33 | - name: Build the Docker image |
36 | 34 | run: docker build --platform linux/amd64 -t ${{secrets.DOCKER_USERNAME}}/${{secrets.DOCKER_APP_NAME}}:${{secrets.DOCKER_APP_TAG}} . |
37 | 35 |
|
38 | | - trigger_docker_push: |
39 | | - runs-on: ubuntu-latest |
40 | | - needs: trigger_docker_build |
41 | | - steps: |
42 | | - - name: Checkout code |
43 | | - uses: actions/checkout@v4 |
44 | | - |
| 36 | + # Paso 6: Iniciar sesión en Docker Hub para permitir el push de la imagen |
45 | 37 | - name: Log in to Docker Hub |
46 | 38 | uses: docker/login-action@v2 |
47 | 39 | with: |
48 | 40 | username: ${{ secrets.DOCKER_USERNAME }} |
49 | 41 | password: ${{ secrets.DOCKER_PASSWORD }} |
50 | 42 |
|
| 43 | + # Paso 7: Push de la imagen Docker construida a Docker Hub |
51 | 44 | - name: Push Docker image |
52 | 45 | run: docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_APP_NAME }}:${{ secrets.DOCKER_APP_TAG }} |
53 | 46 |
|
54 | | - trigger_render_deploy: |
55 | | - runs-on: ubuntu-latest |
56 | | - needs: trigger_docker_push |
57 | | - steps: |
| 47 | + # Paso 8: Despliegue de la aplicación en Render (pasa el token de despliegue) |
58 | 48 | - name: Trigger deploy to Render |
59 | 49 | run: | |
60 | 50 | response=$(curl -s -w "%{http_code}" -o /dev/null -X POST https://api.render.com/deploy/srv-csgeg0lumphs73b48veg?key=${{ secrets.RENDER_DEPLOY_KEY }}) |
|
0 commit comments