diff --git a/.github/workflows/pipeline-ci.yml b/.github/workflows/pipeline-ci.yml new file mode 100644 index 00000000..24fc1a62 --- /dev/null +++ b/.github/workflows/pipeline-ci.yml @@ -0,0 +1,84 @@ +name: CI +on: + push: +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Clonar repo + uses: actions/checkout@v4 + + - name: Setup Java JDK + uses: actions/setup-java@v4.2.1 + with: + java-version: '8' + distribution: 'temurin' + + + # - name: Compilar codigo + # run: | + # mvn clean package + - name: Compilar y Testing + run: | + mvn clean package jacoco:report + + - name: Cargar reportes Jacoco como + uses: actions/upload-artifact@v4.3.3 + with: + name: Reporte Jacoco + path: target/site/jacoco/index.html + + + # - name: Pruebas Unitarias + # run: mvn test + + - name: Setup Java JDK 17 + uses: actions/setup-java@v4.2.1 + with: + java-version: '17' + distribution: 'temurin' + + - name: Analisis SonarCloud + run: | + mvn clean verify org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar \ + -Dsonar.token=${{ secrets.SONAR_TOKEN }} \ + -Dsonar.host.url=https://sonarcloud.io \ + -Dsonar.organization=devops-lab-final \ + -Dsonar.projectKey=devOps-lab-final_microservicio-java + + - name: SonarQube Quality Gate check + uses: sonarsource/sonarqube-quality-gate-action@master + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + with: + scanMetadataReportFile: target/sonar/report-task.txt + + - name: Docker Login + uses: docker/login-action@v3.1.0 + with: + username: estebanignacio + password: ${{secrets.DOCKER_PASS}} + + - name: Set Up Docker + uses: docker/setup-buildx-action@v3 + + - name: Docker build + run: | + docker build -t estebanignacio/microservicio-java:latest . + - name: Docker push + run: | + docker push estebanignacio/microservicio-java:latest + + deploy: + needs: build + runs-on: self-hosted + steps: + - name: Clonar repo + uses: actions/checkout@v4 + + - name: Despliegue + run: | + kubectl apply -f deploy.yaml + + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..07111638 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM openjdk:8-jdk-alpine +EXPOSE 8080 +ARG JAR_FILE=target/*.jar +ADD ${JAR_FILE} app.jar +ENTRYPOINT ["java","-jar","/app.jar"] diff --git a/deploy.yaml b/deploy.yaml new file mode 100644 index 00000000..3275cc09 --- /dev/null +++ b/deploy.yaml @@ -0,0 +1,20 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: microservicio-java +spec: + replicas: 3 + selector: + matchLabels: + app: microservicio-java + template: + metadata: + labels: + app: microservicio-java + spec: + containers: + - name: microservicio-java + image: estebanignacio/microservicio-java:latest + ports: + - containerPort: 8080 + diff --git a/pom.xml b/pom.xml index a5c9e6e2..744e3252 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,18 @@ spring-boot-starter-test test + + junit + junit + 4.13.1 + test + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + @@ -37,7 +49,75 @@ org.springframework.boot spring-boot-maven-plugin - - - + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + default-prepare-agent + + prepare-agent + + + + default-prepare-agent-integration + + prepare-agent-integration + + + + default-report + + report + + + + default-report-integration + + report-integration + + + + default-check + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + 0.0 + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.16 + + + org.apache.maven.plugins + maven-failsafe-plugin + 2.16 + + + default-integration-test + + integration-test + + + + + + diff --git a/src/main/java/com/example/testingweb/GreetingService.java b/src/main/java/com/example/testingweb/GreetingService.java index 6661c82b..6b453c3b 100644 --- a/src/main/java/com/example/testingweb/GreetingService.java +++ b/src/main/java/com/example/testingweb/GreetingService.java @@ -5,6 +5,7 @@ @Service public class GreetingService { public String greet() { - return "Hello, World"; + String password = "12345"; + return "Hola, soy Esteban Espinoza"; } } diff --git a/src/main/java/com/example/testingweb/HomeController.java b/src/main/java/com/example/testingweb/HomeController.java index 6472ecdf..b7ce366c 100644 --- a/src/main/java/com/example/testingweb/HomeController.java +++ b/src/main/java/com/example/testingweb/HomeController.java @@ -9,7 +9,7 @@ public class HomeController { @RequestMapping("/") public @ResponseBody String greeting() { - return "Hello, World"; + return "Hola , Soy Esteban Espinoza"; } }