Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
11a3eb1
Update build.gradle
lobozoldick Dec 21, 2023
5ea58af
Update GreetingService.java
lobozoldick Dec 21, 2023
642af31
Update HomeController.java
lobozoldick Dec 21, 2023
2948b87
Update HttpRequestTest.java
lobozoldick Dec 21, 2023
ece4256
Update TestingWebApplicationTest.java
lobozoldick Dec 21, 2023
2094416
Update WebLayerTest.java
lobozoldick Dec 21, 2023
2884a19
Update WebMockTest.java
lobozoldick Dec 21, 2023
235685b
Create main.yml
lobozoldick Dec 21, 2023
9142b6d
Se Agregan las propiedades de Sonar Cloud
lobozoldick Dec 21, 2023
becd153
Se agrega los job de Jmeter y Postman
lobozoldick Dec 21, 2023
f24e325
Se agrega el build
lobozoldick Dec 21, 2023
b5d5683
Create prueba
lobozoldick Dec 21, 2023
b1cfb59
Delete dist/prueba
lobozoldick Dec 21, 2023
a7e5aaa
Se agrega la copia del build al directorio dist
lobozoldick Dec 21, 2023
d432477
Update main.yml
lobozoldick Dec 21, 2023
7a63ea7
Se comprueba que primero compile antes de seguir con los jobs
lobozoldick Dec 21, 2023
5e49a2a
Se actualiza la versión de la cache
lobozoldick Dec 21, 2023
3bbdde9
Se agrega jacoco
lobozoldick Dec 21, 2023
2ef05f0
Update main.yml usando jacoco
lobozoldick Dec 21, 2023
a1964d3
Update build.gradle
lobozoldick Dec 21, 2023
13b09ae
Cambios en jacoco
lobozoldick Dec 21, 2023
e4e38f7
Se agrega deploy docker
lobozoldick Dec 21, 2023
4278525
Update main.yml
lobozoldick Dec 21, 2023
71cac1e
Se copia el jar al proyecto
lobozoldick Dec 21, 2023
5f471c3
Traspaso de artefactos
lobozoldick Dec 21, 2023
bcfb74c
Update main.yml
lobozoldick Dec 21, 2023
9901f83
Update main.yml
lobozoldick Dec 21, 2023
64e9dac
Create Dockerfile
lobozoldick Dec 21, 2023
8b8cb7b
Create deployment.yaml
lobozoldick Dec 21, 2023
2ff1103
Rename deployment.yaml to deployment.yml
lobozoldick Dec 21, 2023
4d0c30d
Delete deploy directory
lobozoldick Dec 21, 2023
d95dde7
Create deployment.yml
lobozoldick Dec 21, 2023
c852bdd
Update main.yml
lobozoldick Dec 21, 2023
aeec06a
Update deployment.yml
lobozoldick Dec 21, 2023
e22a4fe
Update main.yml
lobozoldick Dec 21, 2023
b720533
Update main.yml
lobozoldick Dec 21, 2023
61f7aa4
Update GreetingService.java
lobozoldick Dec 21, 2023
e680872
Update WebMockTest.java
lobozoldick Dec 21, 2023
1422f34
Update main.yml
lobozoldick Dec 21, 2023
884ea00
Se agregar Postman
lobozoldick Dec 21, 2023
0d2d0aa
Create pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 21, 2023
6a208bf
Delete Postman/sctips directory
lobozoldick Dec 21, 2023
ccbe714
Create pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 21, 2023
f6b2bbb
Update main.yml
lobozoldick Dec 21, 2023
f6f37e5
Update main.yml
lobozoldick Dec 21, 2023
05998dc
Create wait_application.sh
lobozoldick Dec 21, 2023
4fbeddd
Update main.yml
lobozoldick Dec 21, 2023
71102aa
Update main.yml
lobozoldick Dec 21, 2023
3b83ed3
Creación de test de postman
lobozoldick Dec 21, 2023
1ba97b2
Update main.yml
lobozoldick Dec 21, 2023
c7150d8
Update main.yml
lobozoldick Dec 21, 2023
720fe8b
Create consultingLocalhost.sh
lobozoldick Dec 21, 2023
e360fb5
Update main.yml
lobozoldick Dec 21, 2023
d46235b
Update main.yml
lobozoldick Dec 21, 2023
4f419e8
Update Dockerfile
lobozoldick Dec 21, 2023
0d71296
Update main.yml
lobozoldick Dec 21, 2023
a913b1d
Update main.yml
lobozoldick Dec 21, 2023
f62add4
Update main.yml
lobozoldick Dec 21, 2023
534bd11
Update main.yml
lobozoldick Dec 21, 2023
896eb91
Update main.yml
lobozoldick Dec 21, 2023
2de14fd
Update main.yml
lobozoldick Dec 21, 2023
509ca9f
Update main.yml
lobozoldick Dec 21, 2023
f59555d
Update pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 22, 2023
80ed88a
Update main.yml
lobozoldick Dec 22, 2023
c560805
Update main.yml
lobozoldick Dec 22, 2023
d568444
Update main.yml
lobozoldick Dec 22, 2023
8cdc760
Update main.yml
lobozoldick Dec 22, 2023
71a243c
Update pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 22, 2023
78ecb19
Update main.yml
lobozoldick Dec 22, 2023
6daae0c
Update pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 22, 2023
37edea2
Update pruebas_Aceptacion.postman_collection.json
lobozoldick Dec 22, 2023
0ff823b
Update main.yml
lobozoldick Dec 22, 2023
2265c28
Update main.yml
lobozoldick Dec 22, 2023
0e1fd3c
Update main.yml
lobozoldick Dec 22, 2023
ec7fdb4
Update main.yml
lobozoldick Dec 22, 2023
2a78f00
Update main.yml
lobozoldick Dec 22, 2023
5227b98
Update main.yml
lobozoldick Dec 22, 2023
35a3e04
Create LoadTest.jmx
lobozoldick Dec 22, 2023
49b0812
Update main.yml
lobozoldick Dec 22, 2023
59f9ac6
Update main.yml
lobozoldick Dec 22, 2023
c3634de
Finalización de las pruebas de aceptación
lobozoldick Dec 22, 2023
28ceaf4
Update main.yml
lobozoldick Dec 22, 2023
651baf7
Update main.yml
lobozoldick Dec 22, 2023
10e4300
Finalización del pipeline
lobozoldick Dec 22, 2023
8421354
Prueba DUOC
lobozoldick May 22, 2024
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
217 changes: 217 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
name: CI

on:
push:
workflow_dispatch:

jobs:
build:
name: Build App
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: ${{ runner.os }}-gradle

- name: Build with Gradle
run: |
chmod +x gradlew
./gradlew build
ls -lah $GITHUB_WORKSPACE/build/libs/

- name: Archive artifact java app
if: success()
uses: actions/upload-artifact@v3
with:
name: java-app
path: build/libs/testing-web-0.0.1-SNAPSHOT.jar

sonarcloud:
name: Analyze SonarCloud
runs-on: ubuntu-latest
needs: build
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Cache SonarCloud packages
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: Analyze SonarCloud
run: |
chmod +x gradlew
./gradlew jacocoTestReport sonar -Dsonar.login=${{ secrets.TOKEN_SONARCLOUD }} --info --stacktrace

deploy:
name: Deployment Docker and Cloud Run
runs-on: ubuntu-latest
needs: sonarcloud
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

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

- name: Download artifact java app
uses: actions/download-artifact@v3
with:
name: java-app
path: .

- name: Docker build
run: |
chmod 755 testing-web-0.0.1-SNAPSHOT.jar
ls -lah
docker build --tag lobozoldick/microservicio-java:latest .
docker images

- name: Docker push
run: |
docker push lobozoldick/microservicio-java

- name: Google Auth
id: auth
uses: google-github-actions/auth@v2
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

- name: Deploy to Cloud Run
id: deploy
uses: google-github-actions/deploy-cloudrun@v2
with:
service: microservicio-java
region: us-central1
source: ./

- name: Save token and url to file
run: |
echo ${{ steps.deploy.outputs.url }} > url_cloud.txt
gcloud auth print-identity-token > gcp_token.txt

- name: Archive artifact url
if: success()
uses: actions/upload-artifact@v3
with:
name: url-cloud
path: url_cloud.txt
if-no-files-found: error

- name: Archive artifact token
if: success()
uses: actions/upload-artifact@v3
with:
name: gcp-token
path: gcp_token.txt
if-no-files-found: error

postman:
name: Execute Postman
runs-on: ubuntu-latest
needs: deploy
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Download artifact url
uses: actions/download-artifact@v3
with:
name: url-cloud
path: .

- name: Download artifact token
uses: actions/download-artifact@v3
with:
name: gcp-token
path: .

- name: Download Node.js And Newman
run: |
sudo apt-get install -y nodejs
npm install -g newman
npm install -g newman-reporter-htmlextra

- name: Run Postman tests
run: |
export GCP_TOKEN=$(cat gcp_token.txt)
export URL=$(cat url_cloud.txt)
newman run Postman/scripts/pruebas_Aceptacion.postman_collection.json --env-var GCP_TOKEN=$GCP_TOKEN --env-var URL=$URL -r cli,htmlextra --reporter-htmlextra-export resultadoPostman.html

- name: Archive result HTML Postman
if: success()
uses: actions/upload-artifact@v3
with:
name: resultado-postman-html
path: resultadoPostman.html
if-no-files-found: error

jmeter:
name: Execute Jmeter
runs-on: ubuntu-latest
needs: deploy
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Download Apache JMeter
run: |
curl -LJO https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.6.2.tgz
tar -xvzf apache-jmeter-5.6.2.tgz
ls -lash

- name: Download artifact url
uses: actions/download-artifact@v3
with:
name: url-cloud
path: apache-jmeter-5.6.2/

- name: Download artifact token
uses: actions/download-artifact@v3
with:
name: gcp-token
path: apache-jmeter-5.6.2/

- name: Run JMeter tests
if: success()
run: |
ls -lah
cd apache-jmeter-5.6.2
ls -lah
chmod 755 bin/jmeter.sh
mkdir reportHtml
./bin/jmeter.sh -n -t $GITHUB_WORKSPACE/Jmeter/scripts/LoadTest.jmx -e -o ./reportHtml -l testresult.jtl

- name: Archive artifact jmeter-html-reports
if: success()
uses: actions/upload-artifact@v3
with:
name: jmeter-html-reports
path: apache-jmeter-5.6.2/reportHtml
if-no-files-found: error




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 8080

ADD testing-web-0.0.1-SNAPSHOT.jar /app/testing-web-0.0.1-SNAPSHOT.jar

WORKDIR /app

CMD java -jar testing-web-0.0.1-SNAPSHOT.jar
Loading