Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: CI

on:

push:
workflow_dispatch:

jobs:

build:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v3

- name: Build
run: |
chmod +x gradlew
./gradlew build
ls -ltr

- name: SonarCloud Analysis
run: |
chmod +x gradlew
./gradlew build sonar -Dsonar.token=${{ secrets.TOKEN_SONARCLOUD }}

- name: Docker Login
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Copia de Jar a Raiz de proyecto
run: |
ls
cp $GITHUB_WORKSPACE/build/libs/testing-web-2.6.0.jar .
chmod 777 testing-web-2.6.0.jar
ls -lt
- name: Docker Build
run: |
docker build --tag ivanpizarroq/microservicio-java:latest .
docker images

- name: Docker Push
run: |
docker push ivanpizarroq/microservicio-java

deploy:
runs-on: self-hosted
needs: build
steps:

- uses: actions/checkout@v3
- name: Set PowerShell Execution Policy
run: |
Set-ExecutionPolicy Unrestricted
- name: Docker Login
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Deploy to Minikube
run: |
kubectl apply -f deployment.yml





9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM openjdk:11-jre

EXPOSE 8085

ADD testing-web-2.6.0.jar /app/testing-web-2.6.0.jar

WORKDIR /app

CMD java -jar testing-web-2.6.0.jar
50 changes: 40 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,22 +1,52 @@
plugins {
id 'org.springframework.boot' version '2.6.3'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'org.springframework.boot' version '2.6.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id "org.sonarqube" version "4.2.1.3168"
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
apply plugin: 'java'

group = 'org.springframework.samples'
version = '2.6.0'
sourceCompatibility = '11'


repositories {
mavenCentral()
mavenCentral()
}

ext.webjarsFontawesomeVersion = "4.7.0"
ext.webjarsBootstrapVersion = "5.1.3"

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test')
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'javax.cache:cache-api'
runtimeOnly 'org.springframework.boot:spring-boot-starter-actuator'
runtimeOnly 'org.webjars:webjars-locator-core'
runtimeOnly "org.webjars.npm:bootstrap:${webjarsBootstrapVersion}"
runtimeOnly "org.webjars.npm:font-awesome:${webjarsFontawesomeVersion}"
runtimeOnly 'org.ehcache:ehcache'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
runtimeOnly 'org.postgresql:postgresql'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

sonar {
properties {
property "sonar.projectKey", "IvanPizarroQ_microservicio-java"
property "sonar.organization", "ivanpizarroq"
property "sonar.host.url", "https://sonarcloud.io/"
property "sonar.projectName", "microservicio-java"
}
}

test {
useJUnitPlatform()
useJUnitPlatform()
}
21 changes: 21 additions & 0 deletions deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: microservicio-java
labels:
app: microservicio-java
spec:
replicas: 1
selector:
matchLabels:
app: microservicio-java
template:
metadata:
labels:
app: microservicio-java
spec:
containers:
- name: microservicio-java
image: ivanpizarroq/microservicio-java:latest
ports:
- containerPort: 8085
2 changes: 1 addition & 1 deletion src/main/java/com/example/testingweb/GreetingService.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
@Service
public class GreetingService {
public String greet() {
return "Hello, World";
return "Hola, soy Ivan Pizarro";
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/example/testingweb/HomeController.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class HomeController {

@RequestMapping("/")
public @ResponseBody String greeting() {
return "Hello, World";
return "Hola, soy Ivan Pizarro";
}

}
2 changes: 1 addition & 1 deletion src/test/java/com/example/testingweb/HttpRequestTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ public class HttpRequestTest {
@Test
public void greetingShouldReturnDefaultMessage() throws Exception {
assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/",
String.class)).contains("Hello, World");
String.class)).contains("Hola, soy Ivan Pizarro");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ public class TestingWebApplicationTest {
@Test
public void shouldReturnDefaultMessage() throws Exception {
this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
.andExpect(content().string(containsString("Hello, World")));
.andExpect(content().string(containsString("Hola, soy Ivan Pizarro")));
}
}
2 changes: 1 addition & 1 deletion src/test/java/com/example/testingweb/WebLayerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class WebLayerTest {
@Test
public void shouldReturnDefaultMessage() throws Exception {
this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
.andExpect(content().string(containsString("Hello, World")));
.andExpect(content().string(containsString("Hola, soy Ivan Pizarro")));
}
}
//end::test[]
4 changes: 2 additions & 2 deletions src/test/java/com/example/testingweb/WebMockTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ public class WebMockTest {

@Test
public void greetingShouldReturnMessageFromService() throws Exception {
when(service.greet()).thenReturn("Hello, Mock");
when(service.greet()).thenReturn("Hola, soy Ivan Pizarro");
this.mockMvc.perform(get("/greeting")).andDo(print()).andExpect(status().isOk())
.andExpect(content().string(containsString("Hello, Mock")));
.andExpect(content().string(containsString("Hola, soy Ivan Pizarro")));
}
}