diff --git a/azure-pipelines-1.yml b/azure-pipelines-1.yml new file mode 100644 index 000000000..dcbed7187 --- /dev/null +++ b/azure-pipelines-1.yml @@ -0,0 +1,40 @@ +trigger: +- main + +pool: + vmImage: 'ubuntu-latest' + +strategy: + parallel: 3 + +steps: +# 1️⃣ Verificar versiones de Java y Maven +- script: | + echo "Verificando Java y Maven preinstalados en Linux..." + java -version + mvn -version + displayName: 'Verificar entorno Java y Maven' + +# 2️⃣ Compilar proyecto con Maven (sin tests) +- script: | + echo "Iniciando compilación Maven..." + mvn clean package -DskipTests + displayName: 'Compilar proyecto Maven' + +# 3️⃣ Ejecutar pruebas (opcional) +- script: | + echo "Ejecutando pruebas..." + mvn test + displayName: 'Ejecutar pruebas con Maven' + continueOnError: true # Permite que el pipeline no falle si hay test rotos + +# 4️⃣ Publicar resultados JUnit (si existen) +- task: PublishTestResults@2 + inputs: + testResultsFiles: '**/target/surefire-reports/TEST-*.xml' + testRunTitle: 'Resultados de pruebas JUnit' + condition: succeededOrFailed() + +# 5️⃣ Mensaje final +- script: echo "✅ Compilación completada exitosamente en Linux con 3 agentes paralelos." + displayName: 'Finalización' diff --git a/azure-pipelines-2.yml b/azure-pipelines-2.yml new file mode 100644 index 000000000..0f407d163 --- /dev/null +++ b/azure-pipelines-2.yml @@ -0,0 +1,51 @@ +trigger: +- main + +pool: + vmImage: 'ubuntu-latest' + +jobs: +# JOB 1: Compilar el proyecto con Maven +- job: Build + displayName: Build Maven Project + steps: + - task: Maven@4 + displayName: 'Maven Package' + inputs: + mavenPomFile: 'pom.xml' + goals: 'clean package -DskipTests' + + - task: CopyFiles@2 + displayName: 'Copy Files to artifact staging directory' + inputs: + SourceFolder: '$(System.DefaultWorkingDirectory)' + Contents: '**/target/*.?(war|jar)' + TargetFolder: '$(Build.ArtifactStagingDirectory)' + + - publish: '$(Build.ArtifactStagingDirectory)' + artifact: 'drop' + + +# JOB 2: Despliegue en entorno de máquinas virtuales Linux +- deployment: VMDeploy + displayName: Web deploy to Linux VM + dependsOn: Build + condition: succeeded() + environment: + name: 'maquina1' # Tu environment existente + resourceType: VirtualMachine + tags: 'linux-app' # Etiqueta de las VMs (ajústala según tu entorno) + + strategy: + runOnce: # Ejecuta una vez por VM + deploy: + steps: + - download: current + artifact: drop + + - script: | + echo " Iniciando despliegue en máquina virtual Linux..." + echo " Artefactos disponibles:" + ls -R $(Pipeline.Workspace)/drop + echo "✅Despliegue completado en la VM con tag 'linux-app'" + displayName: 'Ejecutar despliegue en VM Linux' diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 000000000..7ba488dcc --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,57 @@ +# ============================================== +# Azure DevOps Pipeline - Proyecto INTERESTELAR +# ============================================== +# Este pipeline ejecuta tres tareas en paralelo +# usando tres agentes distintos. +# ============================================== + +trigger: +- main + +# Variables seguras (define myToken y myPassword en Azure DevOps) +variables: + agentPoolName: 'MySelfHostedPool' # Nombre del pool de tus agentes + agentProject: 'INTERESTELAR' # Nombre del proyecto + myToken: '$(myToken)' # Token seguro (variable secreta) + myPassword: '$(myPassword)' # Contraseña segura + myUser: 'sebatianuribe111' # Usuario de agente remoto + +# ============================================== +# Job 1, 2 y 3 corren en paralelo +# ============================================== +jobs: +- job: BuildProject + displayName: " Compilar proyecto INTERESTELAR" + pool: + name: '$(agentPoolName)' + steps: + - script: | + echo "Iniciando compilación en $(Agent.Name)" + echo "Compilando código fuente..." + sleep 10 + echo " Compilación completada." + displayName: "Compilación del código" + +- job: RunTests + displayName: " Ejecutar pruebas automáticas" + pool: + name: '$(agentPoolName)' + steps: + - script: | + echo "Ejecutando pruebas en $(Agent.Name)" + echo "Corriendo tests unitarios..." + sleep 8 + echo " Pruebas exitosas." + displayName: "Ejecución de pruebas" + +- job: DeployApp + displayName: " Desplegar aplicación" + pool: + name: '$(agentPoolName)' + steps: + - script: | + echo "Desplegando aplicación desde $(Agent.Name)" + echo "Ejecutando tareas de despliegue..." + sleep 6 + echo " Despliegue completado correctamente." + displayName: "Despliegue de la aplicación"