Update .gitea/workflows/build.yaml
This commit is contained in:
+13
-12
@@ -12,11 +12,16 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# 1. Obtenemos el código
|
|
||||||
- name: Checkout del código
|
- name: Checkout del código
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
# 2. Nos autenticamos en tu registro local
|
# 1. NUEVO: Generamos la versión semántica dinámica
|
||||||
|
- name: Definir Versión Semántica
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
# Formato v1.0.X (X = número de ejecución del pipeline)
|
||||||
|
echo "VERSION=v1.0.${{ github.run_number }}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Login en Gitea Registry
|
- name: Login en Gitea Registry
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
with:
|
with:
|
||||||
@@ -24,29 +29,25 @@ jobs:
|
|||||||
username: ${{ secrets.REGISTRY_USER }}
|
username: ${{ secrets.REGISTRY_USER }}
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
|
||||||
# 3. Construimos y subimos la imagen (Lógica intacta)
|
# 2. ACTUALIZADO: Usamos la nueva variable para los tags de Docker
|
||||||
- name: Construir y Subir Imagen
|
- name: Construir y Subir Imagen
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v4
|
||||||
with:
|
with:
|
||||||
context: workloads/ecommerce/
|
context: workloads/ecommerce/
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
gitea.cruzcloud.net/devops/ecommerce-frontend:${{ github.sha }}
|
gitea.cruzcloud.net/devops/ecommerce-frontend:${{ steps.vars.outputs.VERSION }}
|
||||||
gitea.cruzcloud.net/devops/ecommerce-frontend:latest
|
gitea.cruzcloud.net/devops/ecommerce-frontend:latest
|
||||||
|
|
||||||
# 4. NUEVO: Actualizamos el manifiesto y hacemos push
|
# 3. ACTUALIZADO: Inyectamos la versión limpia en el manifiesto YAML
|
||||||
- name: Actualizar Manifiesto GitOps (CD)
|
- name: Actualizar Manifiesto GitOps (CD)
|
||||||
run: |
|
run: |
|
||||||
# A) Configuramos la identidad de Git para el commit automático
|
|
||||||
git config user.name "Cristian Felipe"
|
git config user.name "Cristian Felipe"
|
||||||
git config user.email "[email protected]"
|
git config user.email "[email protected]"
|
||||||
|
|
||||||
# B) Buscamos la línea de la imagen y reemplazamos el tag dinámicamente
|
# Reemplazo seguro apuntando a la versión semántica
|
||||||
sed -i "s|image: gitea.cruzcloud.net/devops/ecommerce-frontend:.*|image: gitea.cruzcloud.net/devops/ecommerce-frontend:${{ github.sha }}|g" workloads/ecommerce/frontend.yaml
|
sed -i -E "s|(image: gitea.cruzcloud.net/devops/ecommerce-frontend:).*|\1${{ steps.vars.outputs.VERSION }}|g" workloads/ecommerce/frontend.yaml
|
||||||
|
|
||||||
# C) Guardamos los cambios
|
|
||||||
git add workloads/ecommerce/frontend.yaml
|
git add workloads/ecommerce/frontend.yaml
|
||||||
|
git commit -m "chore: release ${{ steps.vars.outputs.VERSION }} [skip ci]" || echo "Sin cambios para hacer commit"
|
||||||
# D) Hacemos el commit. El flag [skip ci] es obligatorio para evitar un bucle infinito.
|
|
||||||
git commit -m "chore: update frontend image tag to ${{ github.sha }} [skip ci]" || echo "Sin cambios para hacer commit"
|
|
||||||
git push
|
git push
|
||||||
Reference in New Issue
Block a user