Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f3d3d95c70 | |||
| d2b82066a0 | |||
| 997253152a | |||
| f08b475428 |
@@ -0,0 +1,85 @@
|
|||||||
|
name: Despliegue Automatizado Universal
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-context:
|
||||||
|
runs-on: host
|
||||||
|
outputs:
|
||||||
|
node_version: ${{ steps.setup.outputs.version }}
|
||||||
|
target_app: ${{ steps.setup.outputs.app }}
|
||||||
|
steps:
|
||||||
|
- name: Resolver Aplicación desde apps.conf
|
||||||
|
id: setup
|
||||||
|
run: |
|
||||||
|
# 1. Obtener el nombre del repositorio actual en Gitea (ej: front-Censo)
|
||||||
|
REPO_NAME="${{ github.event.repository.name }}"
|
||||||
|
|
||||||
|
# 2. Determinar si buscamos un entorno -dev (develop) o producción (master)
|
||||||
|
if [ "${{ github.ref_name }}" = "develop" ]; then
|
||||||
|
SUFFIX="-dev"
|
||||||
|
else
|
||||||
|
SUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Buscando qué sección de apps.conf tiene REPO=$REPO_NAME y termina en '$SUFFIX'..."
|
||||||
|
|
||||||
|
# 3. Buscar en /etc/apps.conf el bloque que contenga REPO=nombre_del_repo
|
||||||
|
TARGET_APP=$(awk -v repo="REPO=$REPO_NAME" -v suf="$SUFFIX" '
|
||||||
|
/^\[/ { gsub(/[\[\]]/, "", $0); current_box=$0; next }
|
||||||
|
$0 == repo {
|
||||||
|
if ((suf == "-dev" && current_box ~ /-dev$/) || (suf == "" && current_box !~ /-dev$/)) {
|
||||||
|
print current_box;
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' /etc/apps.conf)
|
||||||
|
|
||||||
|
if [ -z "$TARGET_APP" ]; then
|
||||||
|
echo "ERROR: No se encontró ninguna sección en /etc/apps.conf para el repositorio $REPO_NAME con el sufijo correcto."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. Leer la versión de Node del bloque encontrado
|
||||||
|
VERSION=$(awk -v app="$TARGET_APP" '
|
||||||
|
$0=="["app"]" { found=1; next }
|
||||||
|
/^\[/ && found { exit }
|
||||||
|
found && /^NODE=/ { split($0, a, "="); print a[2]; exit }
|
||||||
|
' /etc/apps.conf)
|
||||||
|
|
||||||
|
MAJOR_VERSION=$(echo "$VERSION" | tr -d '[:space:]' | grep -oE '[0-9]+' | head -n1)
|
||||||
|
|
||||||
|
echo "-> ID de Aplicación encontrado: $TARGET_APP"
|
||||||
|
echo "-> Versión Mayor de Node resuelta: $MAJOR_VERSION"
|
||||||
|
|
||||||
|
echo "app=${TARGET_APP}" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=${MAJOR_VERSION}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
build:
|
||||||
|
needs: get-context
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Configurar Node.js dinámicamente
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: ${{ needs.get-context.outputs.node_version }}
|
||||||
|
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm run build
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: [get-context, build]
|
||||||
|
runs-on: host
|
||||||
|
steps:
|
||||||
|
- name: Ejecutar Despliegue en Servidor Físico
|
||||||
|
run: |
|
||||||
|
TARGET_APP="${{ needs.get-context.outputs.target_app }}"
|
||||||
|
BRANCH_NAME="${{ github.ref_name }}"
|
||||||
|
|
||||||
|
sudo -u deploy /home/deploy/scripts/deploy-front.sh "$TARGET_APP" "$BRANCH_NAME"
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<b> Corresponsable</b> (obligatorio): El proyecto deberá contar con
|
<b> Corresponsable</b> (obligatorio): El proyecto deberá contar con
|
||||||
un corresponsable el cual deberá cumplir con los requisitos del
|
un corresponsable el cual deberá cumplir con los requisitos del
|
||||||
numeral 1. del apartado II. Bases quien continuará con el proyecto
|
apartado II. Bases, numeral 1 quien continuará con el proyecto
|
||||||
cuando el responsable no pueda continuar con el mismo.
|
cuando el responsable no pueda continuar con el mismo.
|
||||||
</li>
|
</li>
|
||||||
<br />
|
<br />
|
||||||
@@ -262,7 +262,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Recepción de propuestas</td>
|
<td>Recepción de propuestas</td>
|
||||||
<td>Hasta el 29 mayo de 2026 a las 19:00 horas</td>
|
<td>Hasta el 05 de junio de 2026 a las 19:00 horas</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Notificación de resultados</td>
|
<td>Notificación de resultados</td>
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
<br />
|
<br />
|
||||||
<p>
|
<p>
|
||||||
<b>Recepción de propuestas:</b> a partir de la fecha de publicación de
|
<b>Recepción de propuestas:</b> a partir de la fecha de publicación de
|
||||||
esta convocatoria <b>y hasta las 19:00 horas</b> del 29 de mayo de
|
esta convocatoria <b>y hasta las 19:00 horas</b> del 05 de junio de
|
||||||
2026. La entrega y recepción de proyectos se realizará en formato
|
2026. La entrega y recepción de proyectos se realizará en formato
|
||||||
impreso en la Coordinación de Investigación (UIM-I y UIM-II) y en
|
impreso en la Coordinación de Investigación (UIM-I y UIM-II) y en
|
||||||
formato digital (Word y PDF) a través del siguiente correo
|
formato digital (Word y PDF) a través del siguiente correo
|
||||||
@@ -315,11 +315,12 @@
|
|||||||
<div class="space">
|
<div class="space">
|
||||||
<ul class="cir">
|
<ul class="cir">
|
||||||
<li>(F1) Formato de inscripción de proyecto</li>
|
<li>(F1) Formato de inscripción de proyecto</li>
|
||||||
<li>(F2) Solicitud de inscripción de participantes</li>
|
<li>(F2) Formato de presupuesto</li>
|
||||||
<li>
|
<li>
|
||||||
(F3) Cesión de Derechos de Propiedad Intelectual firmado por el
|
(F3) Cesión de Derechos de Propiedad Intelectual firmado por el
|
||||||
responsable del proyecto
|
responsable del proyecto
|
||||||
</li>
|
</li>
|
||||||
|
<li>(F4) Solicitud de inscripción de participantes</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user