Skip to content
/NoteForge
Sign in Sign up
Comparing v7 → v8 /azuredevops History
- \# ACTION\_PLAN\.md
-
- <br>
- \> \[\!IMPORTANT\]
- \> \*\*ESTADO ACTUAL DE AUDITORÍA:\*\* De acuerdo con las reglas obligatorias de esta auditoría forense\, \*\*NO se ha realizado ningún cambio en los archivos de la rama \`fix/pipeline\-build\-error\`\*\*\. Las propuestas que se listan a continuación están pendientes de aprobación explícita\.
-
- <br>
- \-\-\-
-
- <br>
- \#\# 1\. Corrección Inmediata \(Menor Riesgo\)
-
- <br>
- \#\#\# Modificación A: Sincronizar y Parametrizar la Versión de Node\.js
- \* \*\*Acción:\*\* Reemplazar el valor hardcodeado \`24.4.1\` en la tarea \`NodeTool@0\` por la variable dinámica declarada en el grupo de variables centralizado.
- \* \*\*Archivos a modificar:\*\* \[npm\-install\-dependencies\.yml\]\(file:///c:/Users/jgrullon/Documents/DevOps/pipelines\-devops/movil\-apap/tasks/npm\-install\-dependencies\.yml\)
- \* \*\*Cambio propuesto:\*\*
-   \`\`\`diff
-   -  - task: NodeTool@0
-   -    displayName: "Instalar Node.js"
-   -    inputs:
-   -      versionSpec: "24.4.1"
-   +  - task: NodeTool@0
-   +    displayName: "Instalar Node.js"
-   +    inputs:
-   +      versionSpec: "$(nodeVersion)"
-   \`\`\`
-
- <br>
- \#\#\# Modificación B: Declaración de Pool de Agentes para Jobs de PR
- \* \*\*Acción:\*\* Asegurar que los Jobs que ejecutan scripts de Bash de Unix (\`gitleaks-job.yml\`, \`wiz-dir-scan-job.yml\` y \`build-job.yml\`) se ejecuten en agentes Linux (\`ubuntu-latest\`) para evitar fallos de shell no reconocido en entornos Windows.
- \* \*\*Archivos a modificar:\*\*
-   \* \[gitleaks\-job\.yml\]\(file:///c:/Users/jgrullon/Documents/DevOps/pipelines\-devops/movil\-apap/jobs/gitleaks\-job\.yml\)
-   \* \[build\-job\.yml\]\(file:///c:/Users/jgrullon/Documents/DevOps/pipelines\-devops/movil\-apap/jobs/build\-job\.yml\)
-   \* \[wiz\-dir\-scan\-job\.yml\]\(file:///c:/Users/jgrullon/Documents/DevOps/pipelines\-devops/movil\-apap/jobs/wiz\-dir\-scan\-job\.yml\)
- \* \*\*Cambio propuesto (ejemplo en \`gitleaks-job.yml\`):\*\*
-   \`\`\`diff
-    jobs:
-      - job: GitLeaks
-        displayName: "Escaneo de GitLeaks"
-   +    pool:
-   +      vmImage: "ubuntu-latest"
-        steps:
-          - template: ../tasks/gitleaks.yml
-   \`\`\`
-
- <br>
- \-\-\-
-
- <br>
- \#\# 2\. Corrección Recomendada \(Mejor Solución a Largo Plazo\)
-
- <br>
- \#\#\# Tareas Nativas del Marketplace
- \* Evitar la descarga manual de binarios mediante \`wget\` y scripts \`Bash@3\`. En su lugar, integrar las tareas oficiales de la extensión de Azure DevOps para \*\*GitLeaks\*\* y \*\*Wiz Security Scan\*\*. Esto reduce el mantenimiento de scripts personalizados y automatiza las actualizaciones de los motores de escaneo de forma segura.
-
- <br>
- \#\#\# Control de Entorno Java y Android
- \* Añadir un paso explícito para instalar y configurar la versión adecuada de Java (JDK 17 recomendado para Capacitor 5/6) en \`tasks/build.yml\` antes de ejecutar la compilación de Android para evitar fallos de Gradle.
- \* \*\*Cambio propuesto en \`tasks/build.yml\`:\*\*
-   \`\`\`yaml
-   - task: JavaToolInstaller@0
-     displayName: "Instalar Java JDK 17"
-     inputs:
-       versionSpec: '17'
-       jdkSourceOption: 'PreInstalled'
-       jdkArchitectureOption: 'x64'
-       cleanDestinationDirectory: false
-   \`\`\`
-
- <br>
- \-\-\-
-
- <br>
- \#\# 3\. Tabla de Alternativas
-
- <br>
- \| Alternativa \| Esfuerzo \| Riesgo \| Impacto \| Ventajas \| Desventajas \|
- \| :\-\-\- \| :\-\-\- \| :\-\-\- \| :\-\-\- \| :\-\-\- \| :\-\-\- \|
- \| \*\*Opción A \(Recomendada\):\*\* Sincronizar Node a \`$\(nodeVersion\)\` y forzar agentes Linux \(\`ubuntu\-latest\`\) en los jobs\. \| \*\*Bajo\*\* \| \*\*Muy Bajo\*\* \| \*\*Alto\*\* \| Rápida implementación\, alinea el pipeline con la especificación de variables y soluciona el error inmediato de Bash en agentes Windows\. \| Requiere que las variables de \`vars\.yml\` estén perfectamente mantenidas\. \|
- \| \*\*Opción B \(Contenerización\):\*\* Ejecutar los jobs de compilación dentro de una imagen de contenedor Docker pre\-configurada\. \| \*\*Medio\*\* \| \*\*Bajo\*\* \| \*\*Muy Alto\*\* \| Inmutabilidad total\. La imagen contiene la versión exacta de Node\, Java\, Gradle y el Android SDK\. \| Incrementa el costo de mantenimiento de las imágenes Docker del equipo DevOps\. \|
- \| \*\*Opción C \(Scripts Multiplataforma\):\*\* Reescribir las tareas de Gitleaks y Wiz en PowerShell Core \(\`pwsh: true\`\) para soporte multiplataforma \(Windows/Linux\)\. \| \*\*Alto\*\* \| \*\*Medio\*\* \| \*\*Medio\*\* \| Permite ejecutar las tareas de seguridad en cualquier pool de agentes asignado \(independientemente del OS\)\. \| Complejidad de mantenimiento alta al escribir lógica para descargar\, extraer e instalar binarios en Windows y Linux\. \|
-
- <br>
- \-\-\-
-
- <br>
- \#\# 4\. Estrategia de Rollback
- Si tras aplicar el plan de acción (Opción A o B) se presentan errores inesperados de compilación:
- 1\. Realizar un revert de los commits aplicados en la rama \`fix/pipeline\-build\-error\`\.
- 2\. Ejecutar un hard reset local a la última versión funcional conocida \(\`git reset \-\-hard 14567e18bb0e38fabb3ea8284c4574dec115022f\`\) y empujar con fuerza a la rama remota para restaurar el estado anterior\.
-
- <br>