From 58141b5c38e416291304fdffc8a1757f49631c0a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:57:07 +0200 Subject: [PATCH 01/70] Main --- .github/workflows/frogbot-scan-repository.yml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/frogbot-scan-repository.yml diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml new file mode 100644 index 000000000..9e852cf89 --- /dev/null +++ b/.github/workflows/frogbot-scan-repository.yml @@ -0,0 +1,50 @@ +name: "Frogbot Scan Repository" +on: + workflow_dispatch: + schedule: + # The repository will be scanned once a day at 00:00 GMT. + - cron: "0 0 * * *" +permissions: + contents: write + pull-requests: write + security-events: write + # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN] + # id-token: write +jobs: + scan-repository: + runs-on: ubuntu-latest + strategy: + matrix: + # The repository scanning will be triggered periodically on the following branches. + branch: ["dev"] + steps: + - uses: jfrog/frogbot@v2 + env: + # [Mandatory] + # JFrog platform URL + JF_URL: ${{ secrets.JF_URL }} + + # [Mandatory if JF_USER and JF_PASSWORD are not provided] + # JFrog access token with 'read' permissions on Xray service + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} + + # [Mandatory if JF_ACCESS_TOKEN is not provided] + # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD + # JF_USER: ${{ secrets.JF_USER }} + + # [Mandatory if JF_ACCESS_TOKEN is not provided] + # JFrog password. Must be provided with JF_USER + # JF_PASSWORD: ${{ secrets.JF_PASSWORD }} + + # [Mandatory] + # The GitHub token is automatically generated for the job + JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # [Mandatory] + # The name of the branch on which Frogbot will perform the scan + JF_GIT_BASE_BRANCH: ${{ matrix.branch }} + + # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN] + # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD + # with: + # oidc-provider-name: "" \ No newline at end of file From 3a3f3e59fa9005b665a4d21b1ab39ad2cca17781 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Mon, 14 Oct 2024 18:05:54 +0200 Subject: [PATCH 02/70] scan main --- .github/workflows/frogbot-scan-repository.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index 9e852cf89..d0a9d7acc 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: # The repository scanning will be triggered periodically on the following branches. - branch: ["dev"] + branch: ["main"] steps: - uses: jfrog/frogbot@v2 env: From f0d43cc644867dccb91c532bb184f25fd55cad1a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:00:37 +0200 Subject: [PATCH 03/70] jmeter tests --- .github/docker | 0 .github/workflows/docker-build.MD | 28 +++++++++++++++++++++++++++ .github/workflows/run-jmeter-test.yml | 26 +++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 .github/docker create mode 100644 .github/workflows/docker-build.MD create mode 100644 .github/workflows/run-jmeter-test.yml diff --git a/.github/docker b/.github/docker new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/docker-build.MD b/.github/workflows/docker-build.MD new file mode 100644 index 000000000..7129b5a38 --- /dev/null +++ b/.github/workflows/docker-build.MD @@ -0,0 +1,28 @@ +--- + name: Build to Docker Hub + + on: + push: + branches: [master] + + jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Build & publish the project + run: mvn compile jib:build -X -DjibSerialize=true \ No newline at end of file diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml new file mode 100644 index 000000000..212048367 --- /dev/null +++ b/.github/workflows/run-jmeter-test.yml @@ -0,0 +1,26 @@ +name: Test JMeter Action + +on: + push: + branches: + - master + pull_request: + branches: [master] + +jobs: + action_build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Run JMeter Action on a test + uses: rbhadti94/apache-jmeter-action@v0.7.0 + with: + testFilePath: test/jmeter/petclinic_test_plan.jmx + outputReportsFolder: reports/ + args: "--loglevel INFO" + + - uses: actions/upload-artifact@v1 + with: + name: jmeter-test-results + path: reports/ From 6d2339775879fa11d727bed4033e2fe9ec3ac08c Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:14:40 +0200 Subject: [PATCH 04/70] change branch to main --- .github/workflows/run-jmeter-test.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 212048367..d1435c866 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -1,11 +1,10 @@ name: Test JMeter Action on: - push: - branches: - - master - pull_request: - branches: [master] + push: + branches: [ main ] + pull_request: + branches: [ main ] jobs: action_build: From b60b0edee479d8327c1a9850e76f99682d7be410 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:18:32 +0200 Subject: [PATCH 05/70] action artifact to v4 --- .github/workflows/run-jmeter-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index d1435c866..fcc372a9b 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -10,7 +10,7 @@ jobs: action_build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.7.0 @@ -19,7 +19,7 @@ jobs: outputReportsFolder: reports/ args: "--loglevel INFO" - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v4 with: name: jmeter-test-results path: reports/ From 77b76f573cc99a5d4b565c5a971dbde4362d575b Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:34:29 +0200 Subject: [PATCH 06/70] change path jmeter tests --- .github/workflows/run-jmeter-test.yml | 2 +- .../workflows/test/petclinic_test_plan.jmx | 540 ++++++++++++++++++ 2 files changed, 541 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test/petclinic_test_plan.jmx diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index fcc372a9b..67b45699d 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -15,7 +15,7 @@ jobs: - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.7.0 with: - testFilePath: test/jmeter/petclinic_test_plan.jmx + testFilePath: test/petclinic_test_plan.jmx outputReportsFolder: reports/ args: "--loglevel INFO" diff --git a/.github/workflows/test/petclinic_test_plan.jmx b/.github/workflows/test/petclinic_test_plan.jmx new file mode 100644 index 000000000..aeb3bd2eb --- /dev/null +++ b/.github/workflows/test/petclinic_test_plan.jmx @@ -0,0 +1,540 @@ + + + + + + false + false + + + + PETCLINIC_HOST + localhost + = + + + PETCLINIC_PORT + 8080 + = + + + CONTEXT_WEB + + = + + + + + + + + continue + + false + 10 + + 500 + 10 + 1361531541000 + 1361531541000 + false + + + true + Original : 500 - 10 - 10 + + + + 300 + + + + + + + ${PETCLINIC_HOST} + ${PETCLINIC_PORT} + + + + + + 4 + + + + + true + + + + 1 + 3 + 1 + count + + false + + + + 1 + 3 + 1 + petCount + + false + + + + + + + + + + + + + ${CONTEXT_WEB}/ + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/resources/css/petclinic.css + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/webjars/bootstrap/5.3.3/dist/js/bootstrap.bundle.min.js + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/vets.html + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/owners/find + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/owners?lastName= + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/owners/${count} + GET + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/owners/${count}/edit + GET + true + false + true + false + false + + + + + + + + false + Test + = + true + firstName + + + false + ${count} + = + true + lastName + + + false + 1234+Test+St. + = + true + address + + + false + TestCity + = + true + city + + + false + 612345678 + = + true + telephone + + + + + + + + + + ${CONTEXT_WEB}/owners/${count}/edit + POST + true + false + true + false + false + + + + + + + + + + + + + + ${CONTEXT_WEB}/owners/${count}/pets/new + GET + true + false + true + false + false + + + + + + + + false + Test+Fluffy+${petCount} + = + true + name + + + false + 2020-12-20 + = + true + birthDate + + + false + cat + = + true + type + + + + + + + + + + ${CONTEXT_WEB}/owners/${count}/pets/new + POST + true + false + true + false + false + + + + + + + + + + + + ${CONTEXT_WEB}/owners/${count}/pets/${petCount}/visits/new + GET + true + false + true + false + + + + + + + + + + false + 2013-02-22 + = + true + date + + + false + visit + = + true + description + + + + + + + + ${CONTEXT_WEB}/owners/${count}/pets/${petCount}/visits/new + POST + true + false + true + false + false + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + + + From 2aa09d7c1a478b3ec6772ad8823d5d24dbedfeaf Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:05:22 +0200 Subject: [PATCH 07/70] add full path to jmx files --- .github/workflows/run-jmeter-test.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 67b45699d..bd1b302b1 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -3,8 +3,14 @@ name: Test JMeter Action on: push: branches: [ main ] + paths: + - 'test/**' + - 'src/test/**' pull_request: branches: [ main ] + paths: + - 'test/**' + - 'src/test/**' jobs: action_build: @@ -15,7 +21,7 @@ jobs: - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.7.0 with: - testFilePath: test/petclinic_test_plan.jmx + testFilePath: src/test/jmeter/petclinic_test_plan.jmx outputReportsFolder: reports/ args: "--loglevel INFO" From 09ba7e829dce3c33f74b89d592a398da665b883c Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:14:51 +0200 Subject: [PATCH 08/70] Update run-jmeter-test.yml --- .github/workflows/run-jmeter-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index bd1b302b1..3f6c9b4fe 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -13,6 +13,7 @@ on: - 'src/test/**' jobs: + action_build: runs-on: ubuntu-latest steps: From edb1d9409b6b41cb7390286312bf35a1096bb36e Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:33:10 +0200 Subject: [PATCH 09/70] add rematif path --- .github/workflows/maven-test.yml | 29 +++++++++++++++++++++++++++ .github/workflows/run-jmeter-test.yml | 11 ++++------ 2 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/maven-test.yml diff --git a/.github/workflows/maven-test.yml b/.github/workflows/maven-test.yml new file mode 100644 index 000000000..8e04aa295 --- /dev/null +++ b/.github/workflows/maven-test.yml @@ -0,0 +1,29 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + - name: TEST with Maven Wrapper + run: ./mvnw -B test diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 3f6c9b4fe..6310a1b80 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -3,14 +3,11 @@ name: Test JMeter Action on: push: branches: [ main ] - paths: - - 'test/**' - - 'src/test/**' pull_request: branches: [ main ] - paths: - - 'test/**' - - 'src/test/**' + + + jobs: @@ -22,7 +19,7 @@ jobs: - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.7.0 with: - testFilePath: src/test/jmeter/petclinic_test_plan.jmx + testFilePath: ../../src/test/jmeter/petclinic_test_plan.jmx outputReportsFolder: reports/ args: "--loglevel INFO" From e598b797f87ea13d6111dabf1601cefd4b5fdd5a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:13:47 +0200 Subject: [PATCH 10/70] resynch --- .github/workflows/maven-test.yml | 2 +- .github/workflows/run-jmeter-test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-test.yml b/.github/workflows/maven-test.yml index 8e04aa295..907a10875 100644 --- a/.github/workflows/maven-test.yml +++ b/.github/workflows/maven-test.yml @@ -1,7 +1,7 @@ # This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Java CI with Maven +name: Java TESTS with Maven on: push: diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 6310a1b80..939ebb681 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -19,7 +19,7 @@ jobs: - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.7.0 with: - testFilePath: ../../src/test/jmeter/petclinic_test_plan.jmx + testFilePath: src/test/jmeter/petclinic_test_plan.jmx outputReportsFolder: reports/ args: "--loglevel INFO" From 84c3e927e676cbc8e9f99ff29635ce760e20e004 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:26:44 +0200 Subject: [PATCH 11/70] Test New version of jmeter --- .github/workflows/run-jmeter-test.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 939ebb681..1b86fa083 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -10,16 +10,15 @@ on: jobs: - action_build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run JMeter Action on a test - uses: rbhadti94/apache-jmeter-action@v0.7.0 + uses: kzhou57/apache-jmeter-action@v0.8.3 with: - testFilePath: src/test/jmeter/petclinic_test_plan.jmx + testFilePath: src/test/jmeter/petclinic_test_plan.jmx outputReportsFolder: reports/ args: "--loglevel INFO" From 2547e0543a950b19933a899a0c3f1434ad354da4 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:45:11 +0200 Subject: [PATCH 12/70] jmeter again --- .github/workflows/run-jmeter-test.yml | 58 +++++++++++++++++---------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 1b86fa083..78ebd4c42 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -1,28 +1,44 @@ -name: Test JMeter Action - +name: Test Action on: - push: - branches: [ main ] - pull_request: - branches: [ main ] + push +jobs: + test-action: + runs-on: ubuntu-latest + steps: + - name: Setup Jmeter + uses: tush-tr/setup-jmeter@v1.1.0 + - name: Run Jmeter + run: jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + + + + + +#name: Test JMeter Action + +#on: +# push: +# branches: [ main ] +# pull_request: +# branches: [ main ] -jobs: - action_build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 +#jobs: +# action_build: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 - - name: Run JMeter Action on a test - uses: kzhou57/apache-jmeter-action@v0.8.3 - with: - testFilePath: src/test/jmeter/petclinic_test_plan.jmx - outputReportsFolder: reports/ - args: "--loglevel INFO" +# - name: Run JMeter Action on a test +# uses: kzhou57/apache-jmeter-action@v0.8.3 +# with: +# testFilePath: src/test/jmeter/petclinic_test_plan.jmx +# outputReportsFolder: reports/ +# args: "--loglevel INFO" - - uses: actions/upload-artifact@v4 - with: - name: jmeter-test-results - path: reports/ +# - uses: actions/upload-artifact@v4 +# with: +# name: jmeter-test-results +# path: reports/ From a9b09406fa09409ff767ce7aabb3632c9b37f7a1 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:09:34 +0200 Subject: [PATCH 13/70] use my jmeter --- .github/workflows/run-jmeter-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 78ebd4c42..6763d09b5 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,11 +6,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Jmeter - uses: tush-tr/setup-jmeter@v1.1.0 + uses: Rodi26/setup-jmeter@v0.0.1 - name: Run Jmeter run: jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl - + From 88f93f6db55a11eda6810a4573c9ece597f82cc7 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:14:10 +0200 Subject: [PATCH 14/70] jmter v0.0.2 --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 6763d09b5..e2832c036 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Jmeter - uses: Rodi26/setup-jmeter@v0.0.1 + uses: Rodi26/setup-jmeter@v0.0.2 - name: Run Jmeter run: jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 48214dc20a1fd429744e928b2f008802eb407a1f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:25:02 +0200 Subject: [PATCH 15/70] jmeter v0.0.3 --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index e2832c036..132530be9 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Jmeter - uses: Rodi26/setup-jmeter@v0.0.2 + uses: Rodi26/setup-jmeter@v0.0.3 - name: Run Jmeter run: jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 6d41ecc078208bdf0db1a7a493f92d94c22ef889 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:32:05 +0200 Subject: [PATCH 16/70] github workspace --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 132530be9..a9306b0cb 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.3 - name: Run Jmeter - run: jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ${{ github.workspace }}/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 6035f107ddfe14389709543d6f5875214396c197 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:56:49 +0200 Subject: [PATCH 17/70] enter path --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index a9306b0cb..a7aed6b68 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.3 - name: Run Jmeter - run: ${{ github.workspace }}/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 1981de10749a33a57d05aa63bae7e613ee68be69 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:04:59 +0200 Subject: [PATCH 18/70] v0.0.4 --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index a7aed6b68..1d556e0f8 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Jmeter - uses: Rodi26/setup-jmeter@v0.0.3 + uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From bf3c75b71b7d918f05cccba8912269fb70f1eefa Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:06:39 +0200 Subject: [PATCH 19/70] jmeter.sh --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 1d556e0f8..90c45aa33 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From d3a6f948c76ab2ccb0574b484f3329d4bce415a4 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:08:51 +0200 Subject: [PATCH 20/70] test --- .github/workflows/run-jmeter-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 90c45aa33..01925d12b 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,8 +8,8 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl - + #run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin From b34d7300a11b02025cb4f465af0a9b793a082027 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:12:37 +0200 Subject: [PATCH 21/70] Test2 --- .github/workflows/run-jmeter-test.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 01925d12b..824a3c9f7 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,15 +8,14 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - #run: ${{ github.workspace }}/apache-jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl - run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin + run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + #run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin #name: Test JMeter Action - -#on: +test2 # push: # branches: [ main ] # pull_request: From 98546390fe6984f401e563a55790cade3febe174 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:14:44 +0200 Subject: [PATCH 22/70] test3 --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 824a3c9f7..e519e8af3 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter.sh -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl #run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin From f6973edc369df102b303d8b8dfc3f3b8dc60757b Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:15:38 +0200 Subject: [PATCH 23/70] test3 again --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index e519e8af3..3f05d81af 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -15,7 +15,7 @@ jobs: #name: Test JMeter Action -test2 +#test2 # push: # branches: [ main ] # pull_request: From 242e35e4480ff626a8b4f0459381a7db1035aa1f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:19:49 +0200 Subject: [PATCH 24/70] github.workspace --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 3f05d81af..8bdfe9378 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl + run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl #run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin From 5e46775dc2d105de6568d162c3675d049b72f76d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:23:22 +0200 Subject: [PATCH 25/70] test4 --- .github/workflows/run-jmeter-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 8bdfe9378..cd46d475d 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,8 +8,8 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl - #run: ls -la ${{ github.workspace }}/apache-jmeter-5.6.3/bin + run: ls -la ${{ github.workspace }} + #run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 0ef518372a4202a3fa784ef3dd9c30362d574556 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:31:38 +0200 Subject: [PATCH 26/70] test4 --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index cd46d475d..37ad33610 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ls -la ${{ github.workspace }} + run: ls -la ${{ GITHUB_ACTION_PATH }} #run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From 815cb465beb32cca1589ebca02c9f70db85f34ec Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:34:58 +0200 Subject: [PATCH 27/70] test4bis --- .github/workflows/run-jmeter-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 37ad33610..e6b2579d7 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -8,7 +8,7 @@ jobs: - name: Setup Jmeter uses: Rodi26/setup-jmeter@v0.0.4 - name: Run Jmeter - run: ls -la ${{ GITHUB_ACTION_PATH }} + run: ls -la ${{ github.action_path }} #run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl From d673fb96ca8d2bde44bce94a62d6173a9e2bd0a3 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:37:29 +0200 Subject: [PATCH 28/70] test Lance --- .github/workflows/run-jmeter-test.yml | 43 +++++---------------------- 1 file changed, 7 insertions(+), 36 deletions(-) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index e6b2579d7..a9adb93c1 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -5,39 +5,10 @@ jobs: test-action: runs-on: ubuntu-latest steps: - - name: Setup Jmeter - uses: Rodi26/setup-jmeter@v0.0.4 - - name: Run Jmeter - run: ls -la ${{ github.action_path }} - #run: ${{ github.workspace }}/jmeter-5.6.3/bin/jmeter -n -t ${{ github.workspace }}/src/test/jmeter/petclinic_test_plan.jmx -l reports/results.jtl - - - - -#name: Test JMeter Action -#test2 -# push: -# branches: [ main ] -# pull_request: -# branches: [ main ] - - - - -#jobs: -# action_build: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 - -# - name: Run JMeter Action on a test -# uses: kzhou57/apache-jmeter-action@v0.8.3 -# with: -# testFilePath: src/test/jmeter/petclinic_test_plan.jmx -# outputReportsFolder: reports/ -# args: "--loglevel INFO" - -# - uses: actions/upload-artifact@v4 -# with: -# name: jmeter-test-results -# path: reports/ + - uses: actions/checkout@v4 + - name: Run JMeter Action on a test + uses: rbhadti94/apache-jmeter-action@v0.5.0 + with: + testFilePath: src/test/jmeter/petclinic_test_plan.jmx + outputReportsFolder: reports/ + args: "--loglevel INFO" \ No newline at end of file From 931ead9ac09f25d42eec522609a1225c83888d3e Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:22:17 +0200 Subject: [PATCH 29/70] jmeter with srping-boot running --- .github/workflows/run-jmeter-test.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index a9adb93c1..bfc6e5442 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,6 +6,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + - name: Build with Maven Wrapper + run: ./mvnw spring-boot:run - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.5.0 with: From 77a096b7f183139b41d6cb3f8fbff295b684c2df Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:27:30 +0200 Subject: [PATCH 30/70] with java version specified --- .github/workflows/run-jmeter-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index bfc6e5442..6f222cea9 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -4,6 +4,9 @@ on: jobs: test-action: runs-on: ubuntu-latest + strategy: + matrix: + java: [ '17' ] steps: - uses: actions/checkout@v4 - name: Set up JDK ${{matrix.java}} From 631fcba8a3a0e34be8bd6beb34b5c62c3c7f3c7d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:39:49 +0200 Subject: [PATCH 31/70] build and test --- .github/workflows/maven-build.yml | 16 +++++++++++---- .github/workflows/maven-test.yml | 29 --------------------------- .github/workflows/run-jmeter-test.yml | 2 -- 3 files changed, 12 insertions(+), 35 deletions(-) delete mode 100644 .github/workflows/maven-test.yml diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 4718a6ce5..a1b24e536 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -10,15 +10,15 @@ on: branches: [ main ] jobs: - build: - + build_and_test: + name: Build and Test runs-on: ubuntu-latest strategy: matrix: java: [ '17' ] - steps: - - uses: actions/checkout@v4 + - name: checkout Git repository + uses: actions/checkout@v4 - name: Set up JDK ${{matrix.java}} uses: actions/setup-java@v4 with: @@ -27,3 +27,11 @@ jobs: cache: maven - name: Build with Maven Wrapper run: ./mvnw -B package + - name: Cache Maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: TEST with Maven Wrapper + run: ./mvnw -B test diff --git a/.github/workflows/maven-test.yml b/.github/workflows/maven-test.yml deleted file mode 100644 index 907a10875..000000000 --- a/.github/workflows/maven-test.yml +++ /dev/null @@ -1,29 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven - -name: Java TESTS with Maven - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17' ] - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v4 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: TEST with Maven Wrapper - run: ./mvnw -B test diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 6f222cea9..8c3fcebd6 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -15,8 +15,6 @@ jobs: java-version: ${{matrix.java}} distribution: 'adopt' cache: maven - - name: Build with Maven Wrapper - run: ./mvnw spring-boot:run - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.5.0 with: From fde87d74924cba3abee74f27a411bb0a13b38bbf Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:36:31 +0200 Subject: [PATCH 32/70] update to OpenJDK21 --- .github/workflows/maven-build.yml | 2 +- .github/workflows/run-jmeter-test.yml | 2 +- Dockerfile | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index a1b24e536..b2ab4f9a1 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '17' ] + java: [ '21' ] steps: - name: checkout Git repository uses: actions/checkout@v4 diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml index 8c3fcebd6..e4fb6768a 100644 --- a/.github/workflows/run-jmeter-test.yml +++ b/.github/workflows/run-jmeter-test.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '17' ] + java: [ '21' ] steps: - uses: actions/checkout@v4 - name: Set up JDK ${{matrix.java}} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..fdeb37996 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM eclipse-temurin:21-jdk-jammy + +WORKDIR /app + +COPY .mvn/ .mvn +COPY mvnw pom.xml ./ +RUN ./mvnw dependency:resolve + +COPY src ./src + +CMD ["./mvnw", "spring-boot:run"] \ No newline at end of file From 3416f020253a4681857d7cb0354bb3dafee70947 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:28:38 +0200 Subject: [PATCH 33/70] docker testing --- .github/workflows/{docker-build.MD => docker-build.yml} | 9 +++++---- Dockerfile | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) rename .github/workflows/{docker-build.MD => docker-build.yml} (74%) diff --git a/.github/workflows/docker-build.MD b/.github/workflows/docker-build.yml similarity index 74% rename from .github/workflows/docker-build.MD rename to .github/workflows/docker-build.yml index 7129b5a38..c18fd7cd9 100644 --- a/.github/workflows/docker-build.MD +++ b/.github/workflows/docker-build.yml @@ -13,15 +13,16 @@ uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub + - name: Login to Jfrog Artifactory uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: rodi26.jfrog.io + #username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.TF_TOKEN }} - name: Set up JDK 17 uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' cache: maven - name: Build & publish the project diff --git a/Dockerfile b/Dockerfile index fdeb37996..65c027669 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM eclipse-temurin:21-jdk-jammy - +EXPOSE 8080 WORKDIR /app COPY .mvn/ .mvn From e3a27c06307fde55451583c76ab1fcd519068d57 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:42:02 +0200 Subject: [PATCH 34/70] Push to artifcatory --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index c18fd7cd9..26f4306e8 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -3,7 +3,7 @@ on: push: - branches: [master] + branches: [main] jobs: build: From 471aae4c24735eafbed0ad47253245d75aabe589 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:43:35 +0200 Subject: [PATCH 35/70] Artifcatory 2 --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 26f4306e8..634978c61 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -17,7 +17,7 @@ uses: docker/login-action@v3 with: registry: rodi26.jfrog.io - #username: ${{ secrets.DOCKERHUB_USERNAME }} + username: "whatever" password: ${{ secrets.TF_TOKEN }} - name: Set up JDK 17 uses: actions/setup-java@v3 From 0f07e0059a9cd765cdf5f4587542d6c4d2ca45df Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:47:13 +0200 Subject: [PATCH 36/70] Artifcatory 3 --- .github/workflows/docker-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 634978c61..0baae32bc 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -17,8 +17,8 @@ uses: docker/login-action@v3 with: registry: rodi26.jfrog.io - username: "whatever" - password: ${{ secrets.TF_TOKEN }} + username: 'rodolphe.fontaine@orange.fr' + password: ${{ secrets.JF_ACCESS_TOKEN }} - name: Set up JDK 17 uses: actions/setup-java@v3 with: From 7b21bc0bc841b17fc792e5a64716dd5a4dd83488 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:01:36 +0200 Subject: [PATCH 37/70] docker push --- .github/workflows/docker-build.yml | 11 ++++------- pom.xml | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 0baae32bc..9cb48c9eb 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -19,11 +19,8 @@ registry: rodi26.jfrog.io username: 'rodolphe.fontaine@orange.fr' password: ${{ secrets.JF_ACCESS_TOKEN }} - - name: Set up JDK 17 - uses: actions/setup-java@v3 + - name: Build and push + uses: docker/build-push-action@v6 with: - java-version: '21' - distribution: 'temurin' - cache: maven - - name: Build & publish the project - run: mvn compile jib:build -X -DjibSerialize=true \ No newline at end of file + push: true + tags: rodi26.jfrog.io/spring-petclinic:latest \ No newline at end of file diff --git a/pom.xml b/pom.xml index e32768166..41a9544fd 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ - 17 + 21 UTF-8 UTF-8 @@ -275,7 +275,21 @@ org.cyclonedx cyclonedx-maven-plugin - + + com.google.cloud.tools + jib-maven-plugin + 3.4.3 + + + + openjdk:11.0.5-jre + + + docker.io/${docker.image.prefix}/${project.artifactId} + pass + + + From f8a4120bc25b3433d1ac4dcd628a5c368c89acc4 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:13:30 +0200 Subject: [PATCH 38/70] with right tags --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 9cb48c9eb..cbde7f933 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -23,4 +23,4 @@ uses: docker/build-push-action@v6 with: push: true - tags: rodi26.jfrog.io/spring-petclinic:latest \ No newline at end of file + tags: rodi26.jfrog.io/rodi26-docker/spring-petclinic:latest \ No newline at end of file From 6085829478b372d59d881aa6964400330276d53c Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:25:35 +0200 Subject: [PATCH 39/70] correct https in POM file --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 41a9544fd..9d9c5cea0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ 4.0.0 org.springframework.samples From 548dcc6c7b4810e72fc414e7ed22d82c722baf25 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:40:39 +0200 Subject: [PATCH 40/70] build.gradle updated --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 21baa9a26..d4035f563 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.3.4' + id 'org.springframework.boot' version '3.3.7' id 'io.spring.dependency-management' version '1.1.6' id 'org.graalvm.buildtools.native' version '0.10.3' id 'org.cyclonedx.bom' version '1.10.0' From a3c2df7d2f30641684d04ba58ed74e0246b1d809 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:32:52 +0200 Subject: [PATCH 41/70] org.springframework.boot' version '3.3.4' --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d4035f563..21baa9a26 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.3.7' + id 'org.springframework.boot' version '3.3.4' id 'io.spring.dependency-management' version '1.1.6' id 'org.graalvm.buildtools.native' version '0.10.3' id 'org.cyclonedx.bom' version '1.10.0' From fa9559d8cb4e39b2f938cad1de38690b30d1e975 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:48:23 +0200 Subject: [PATCH 42/70] update JVM version for Graddle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 21baa9a26..2936f882a 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ group = 'org.springframework.samples' version = '3.3.0' java { - sourceCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 } repositories { From 0f916cf94ee8b764b398fb8c73b71ed6b9a4746a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:00:33 +0200 Subject: [PATCH 43/70] still trying Java 17 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2936f882a..eacda072f 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ group = 'org.springframework.samples' version = '3.3.0' java { - sourceCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = 17 } repositories { From 4a4ffc9fdd917493bed6307f806ccbdca34725af Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:01:31 +0200 Subject: [PATCH 44/70] openjdk:17-oracle --- build.gradle | 1 + pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eacda072f..df84de793 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ version = '3.3.0' java { sourceCompatibility = 17 + targetCompatibility = 17 } repositories { diff --git a/pom.xml b/pom.xml index 9d9c5cea0..a88005e5c 100644 --- a/pom.xml +++ b/pom.xml @@ -282,7 +282,7 @@ - openjdk:11.0.5-jre + openjdk:17-oracle docker.io/${docker.image.prefix}/${project.artifactId} From 3aa04484969e1f53a628255a3163bbaef2ffc06f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:21:33 +0200 Subject: [PATCH 45/70] org.springframework.samples --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index df84de793..08dc07c4c 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ apply plugin: 'io.spring.javaformat' gradle.startParameter.excludedTaskNames += [ "checkFormatAot", "checkFormatAotTest" ] group = 'org.springframework.samples' -version = '3.3.0' +version = '2.1.0.RELEASE' java { sourceCompatibility = 17 From e702a1d58e3375f60628e1d74f5a4cf52b07188a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:31:18 +0200 Subject: [PATCH 46/70] io.spring.javaformat:spring-javaformat-checkstyle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 08dc07c4c..7c4d4190e 100644 --- a/build.gradle +++ b/build.gradle @@ -52,7 +52,7 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-docker-compose' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:mysql' - checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${springJavaformatCheckstyleVersion}" + checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" } From e4309eb8f1bd7eeba6d822927118771fb480ac4f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:38:03 +0200 Subject: [PATCH 47/70] frogbot@v2.9.2 --- .github/workflows/frogbot-scan-repository.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index d0a9d7acc..41e0868e6 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -18,7 +18,9 @@ jobs: # The repository scanning will be triggered periodically on the following branches. branch: ["main"] steps: - - uses: jfrog/frogbot@v2 + - name: checkout Git repository + uses: actions/checkout@v4 + - uses: jfrog/frogbot@v2.9.2 env: # [Mandatory] # JFrog platform URL From 6a4c2a83ae0827738912b5ada3d17156146f90c8 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:52:31 +0200 Subject: [PATCH 48/70] try to exclude gradle --- .github/workflows/frogbot-scan-repository.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index 41e0868e6..e2ad71ea1 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -49,4 +49,5 @@ jobs: # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN] # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD # with: - # oidc-provider-name: "" \ No newline at end of file + # oidc-provider-name: "" + JF_PATH_EXCLUSIONS: "*gradle*"" \ No newline at end of file From a8f784120380302b256432d9bb6cc43290b19f07 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:56:54 +0200 Subject: [PATCH 49/70] without the jar --- gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index a4b76b9530d66f5e68d973ea569d8e19de379189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X From 489fe3ee9e9d96bbe76ec5fdb4fe91e47345c516 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:06:25 +0200 Subject: [PATCH 50/70] correction frogbot --- .github/workflows/frogbot-scan-repository.yml | 2 +- gradle/verification-metadata.dryrun.xml | 3251 +++++++++++++++++ 2 files changed, 3252 insertions(+), 1 deletion(-) create mode 100644 gradle/verification-metadata.dryrun.xml diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index e2ad71ea1..965ec1737 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -50,4 +50,4 @@ jobs: # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD # with: # oidc-provider-name: "" - JF_PATH_EXCLUSIONS: "*gradle*"" \ No newline at end of file + #JF_PATH_EXCLUSIONS: "*gradle*" \ No newline at end of file diff --git a/gradle/verification-metadata.dryrun.xml b/gradle/verification-metadata.dryrun.xml new file mode 100644 index 000000000..95babd4ee --- /dev/null +++ b/gradle/verification-metadata.dryrun.xml @@ -0,0 +1,3251 @@ + + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 29b152bdda32add0ddc7fdaadf7aadcd3b53b369 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:16:53 +0200 Subject: [PATCH 51/70] add wrapper jar --- gradle/wrapper/gradle-wrapper-shared-8.10.2.jar | Bin 0 -> 31179 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 gradle/wrapper/gradle-wrapper-shared-8.10.2.jar diff --git a/gradle/wrapper/gradle-wrapper-shared-8.10.2.jar b/gradle/wrapper/gradle-wrapper-shared-8.10.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..c865a9f0c953c97bd3909b79c154c0ab144ff6c6 GIT binary patch literal 31179 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 sPnD(M*si- literal 0 HcmV?d00001 From aafec54b1d870bf08433480262be3a99ea43b110 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:24:56 +0200 Subject: [PATCH 52/70] graddle wrapper --- gradle/wrapper/gradle-wrapper-shared-8.10.2.jar | Bin 31179 -> 0 bytes gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 gradle/wrapper/gradle-wrapper-shared-8.10.2.jar create mode 100644 gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper-shared-8.10.2.jar b/gradle/wrapper/gradle-wrapper-shared-8.10.2.jar deleted file mode 100644 index c865a9f0c953c97bd3909b79c154c0ab144ff6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31179 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 sPnD(M*si- diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 From 9de166d594ffcb969cea25a73fd02ab68216c23f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:39:07 +0200 Subject: [PATCH 53/70] force java 21 --- .github/workflows/frogbot-scan-repository.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index 965ec1737..25ec9e2ea 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -20,6 +20,11 @@ jobs: steps: - name: checkout Git repository uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '21' - uses: jfrog/frogbot@v2.9.2 env: # [Mandatory] From e410fb0b246a2c2a9bb32f5c2730f962a5af6441 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:22:44 +0200 Subject: [PATCH 54/70] update scan --- .github/workflows/frogbot-scan-repository.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml index 25ec9e2ea..fd848885d 100644 --- a/.github/workflows/frogbot-scan-repository.yml +++ b/.github/workflows/frogbot-scan-repository.yml @@ -18,8 +18,6 @@ jobs: # The repository scanning will be triggered periodically on the following branches. branch: ["main"] steps: - - name: checkout Git repository - uses: actions/checkout@v4 - name: Set up JDK 21 uses: actions/setup-java@v4 with: From 9f6af7b5a71d6dc31deedc18827a51954c2e427f Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:30:35 +0200 Subject: [PATCH 55/70] test build and test in the same file --- .github/workflows/maven-build.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index b2ab4f9a1..890217636 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -10,8 +10,8 @@ on: branches: [ main ] jobs: - build_and_test: - name: Build and Test + build: + name: Build runs-on: ubuntu-latest strategy: matrix: @@ -33,5 +33,14 @@ jobs: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - - name: TEST with Maven Wrapper - run: ./mvnw -B test + + publish-job: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + run: ./mvnw -B test From aff4e6ae0cfc8368b343256ff6c8b3b6720c598d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:34:15 +0200 Subject: [PATCH 56/70] corrections --- .github/workflows/maven-build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 890217636..d6918f1a3 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -34,13 +34,14 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - publish-job: + test: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' + - name: Run Tests run: ./mvnw -B test From 7d5d7952b8c8630b5500cbaccac6767c1f936d61 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:44:42 +0200 Subject: [PATCH 57/70] add Jmeter to build --- .github/workflows/maven-build.yml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index d6918f1a3..75b696d3c 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -34,7 +34,7 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - test: + Run test: runs-on: ubuntu-latest needs: build steps: @@ -45,3 +45,24 @@ jobs: distribution: 'temurin' - name: Run Tests run: ./mvnw -B test + + Run Jmeter test plan: + runs-on: ubuntu-latest + needs: Run test + strategy: + matrix: + java: [ '21' ] + steps: + - uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + - name: Run JMeter Action on a test + uses: rbhadti94/apache-jmeter-action@v0.5.0 + with: + testFilePath: src/test/jmeter/petclinic_test_plan.jmx + outputReportsFolder: reports/ + args: "--loglevel INFO" \ No newline at end of file From b7859cd22b8fae6aa52cbaebe388f440e306facb Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:46:24 +0200 Subject: [PATCH 58/70] add _ to name --- .github/workflows/maven-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 75b696d3c..a9d1a0eb5 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -34,7 +34,7 @@ jobs: key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - Run test: + Run_test: runs-on: ubuntu-latest needs: build steps: @@ -46,9 +46,9 @@ jobs: - name: Run Tests run: ./mvnw -B test - Run Jmeter test plan: + Run_Jmeter_test_plan: runs-on: ubuntu-latest - needs: Run test + needs: Run_add _ test strategy: matrix: java: [ '21' ] From dd85f671a0d25306bc02ca3287235d50909a141d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:52:17 +0200 Subject: [PATCH 59/70] run_test --- .github/workflows/maven-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index a9d1a0eb5..a466d63cc 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -48,7 +48,7 @@ jobs: Run_Jmeter_test_plan: runs-on: ubuntu-latest - needs: Run_add _ test + needs: Run_test strategy: matrix: java: [ '21' ] From 1c19cd1180f14ca4ea84e46772e685774928ec92 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 19:10:18 +0200 Subject: [PATCH 60/70] add exec appli to jmeter tests --- .github/workflows/maven-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index a466d63cc..121d76a18 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -60,6 +60,8 @@ jobs: java-version: ${{matrix.java}} distribution: 'adopt' cache: maven + - name: Build with Maven Wrapper + run: ./mvnw spring-boot:run - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.5.0 with: From b75d8d483e0e3b4058fe3476be99ed4b5ddf7b53 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 20:43:57 +0200 Subject: [PATCH 61/70] add docker run --- .github/workflows/maven-build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 121d76a18..caf0038b3 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -60,8 +60,12 @@ jobs: java-version: ${{matrix.java}} distribution: 'adopt' cache: maven - - name: Build with Maven Wrapper - run: ./mvnw spring-boot:run + - name: run docker + uses: docker-practice/actions-setup-docker@master + - name: Build Docker Image + run: docker build -t spring-petclinic . + - name: Run Docker Container + run: docker run -d -p 8080:8080 spring-petclinic - name: Run JMeter Action on a test uses: rbhadti94/apache-jmeter-action@v0.5.0 with: From cb88dd9a7e9ed71d1cc484f1abc71a34e0e6ea8a Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:11:26 +0200 Subject: [PATCH 62/70] add scan --- .github/workflows/maven-build.yml | 95 ++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 26 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index caf0038b3..ce4819a71 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -46,29 +46,72 @@ jobs: - name: Run Tests run: ./mvnw -B test - Run_Jmeter_test_plan: - runs-on: ubuntu-latest - needs: Run_test - strategy: - matrix: - java: [ '21' ] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v4 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: run docker - uses: docker-practice/actions-setup-docker@master - - name: Build Docker Image - run: docker build -t spring-petclinic . - - name: Run Docker Container - run: docker run -d -p 8080:8080 spring-petclinic - - name: Run JMeter Action on a test - uses: rbhadti94/apache-jmeter-action@v0.5.0 - with: - testFilePath: src/test/jmeter/petclinic_test_plan.jmx - outputReportsFolder: reports/ - args: "--loglevel INFO" \ No newline at end of file + + + Build_and_push: + runs-on: ubuntu-latest + needs: Run_test + steps: + - name: checkout Git repository + uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '21' + - name: Login to Jfrog Artifactory + uses: docker/login-action@v3 + with: + registry: rodi26.jfrog.io + username: 'rodolphe.fontaine@orange.fr' + password: ${{ secrets.JF_ACCESS_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v6 + with: + push: true + tags: rodi26.jfrog.io/rodi26-docker/spring-petclinic:latest + + scan-repository: + runs-on: ubuntu-latest + needs: Build_and_push + strategy: + matrix: + # The repository scanning will be triggered periodically on the following branches. + branch: ["main"] + steps: + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '21' + - uses: jfrog/frogbot@v2.9.2 + env: + # [Mandatory] + # JFrog platform URL + JF_URL: ${{ secrets.JF_URL }} + + # [Mandatory if JF_USER and JF_PASSWORD are not provided] + # JFrog access token with 'read' permissions on Xray service + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} + + # [Mandatory if JF_ACCESS_TOKEN is not provided] + # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD + # JF_USER: ${{ secrets.JF_USER }} + + # [Mandatory if JF_ACCESS_TOKEN is not provided] + # JFrog password. Must be provided with JF_USER + # JF_PASSWORD: ${{ secrets.JF_PASSWORD }} + + # [Mandatory] + # The GitHub token is automatically generated for the job + JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # [Mandatory] + # The name of the branch on which Frogbot will perform the scan + JF_GIT_BASE_BRANCH: ${{ matrix.branch }} + + # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN] + # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD + # with: + # oidc-provider-name: "" + #JF_PATH_EXCLUSIONS: "*gradle*" \ No newline at end of file From bc9c45d3cea090702884325b2b9d13ca790e9b4d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:34:38 +0200 Subject: [PATCH 63/70] jmeter testing --- .github/workflows/maven-build.yml | 38 +++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index ce4819a71..617d42e63 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -48,7 +48,7 @@ jobs: - Build_and_push: + Build_Container_and_push_to_Artifactory: runs-on: ubuntu-latest needs: Run_test steps: @@ -114,4 +114,38 @@ jobs: # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD # with: # oidc-provider-name: "" - #JF_PATH_EXCLUSIONS: "*gradle*" \ No newline at end of file + #JF_PATH_EXCLUSIONS: "*gradle*" + + + + test-action: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '21' ] + steps: + - uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.java}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.java}} + distribution: 'adopt' + cache: maven + - name: Login to Jfrog Artifactory + uses: docker/login-action@v3 + with: + registry: rodi26.jfrog.io + username: 'rodolphe.fontaine@orange.fr' + password: ${{ secrets.JF_ACCESS_TOKEN }} + + - name: Set Up Docker + uses: docker-practice/actions-setup-docker@master + - name: Docker Run + run: docker run -d -p 8080:8080 rodi26.jfrog.io/rodi26-docker/spring-petclinic:latest + + - name: Run JMeter Action on a test + uses: rbhadti94/apache-jmeter-action@v0.5.0 + with: + testFilePath: src/test/jmeter/petclinic_test_plan.jmx + outputReportsFolder: reports/ + args: "--loglevel INFO" \ No newline at end of file From c4d864b71261537beb3219b4df3413c8420e29ae Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:37:54 +0200 Subject: [PATCH 64/70] correction --- .github/workflows/maven-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 617d42e63..7782787d0 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -73,7 +73,7 @@ jobs: scan-repository: runs-on: ubuntu-latest - needs: Build_and_push + needs: Build_Container_and_push_to_Artifactory strategy: matrix: # The repository scanning will be triggered periodically on the following branches. @@ -120,6 +120,7 @@ jobs: test-action: runs-on: ubuntu-latest + needs: Build_Container_and_push_to_Artifactory strategy: matrix: java: [ '21' ] From e087d1067ecfbdfb1220df972966bc408312a96d Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:52:25 +0200 Subject: [PATCH 65/70] Try Jfog build and tag --- .github/workflows/maven-build.yml | 36 ++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 7782787d0..fcb1101f6 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -149,4 +149,38 @@ jobs: with: testFilePath: src/test/jmeter/petclinic_test_plan.jmx outputReportsFolder: reports/ - args: "--loglevel INFO" \ No newline at end of file + args: "--loglevel INFO" + + build-and-tag: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup JFrog CLI + uses: jfrog/setup-jfrog-cli@v3 + env: + JF_URL: ${{ secrets.JF_URL }} + JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} + + - name: Build Tag and push Docker Image + env: + IMAGE_NAME: rodi26.jfrog.io/rodi26-docker/jfrog-spring-petclinic:${{ github.run_number }} + run: | + jf docker build -t $IMAGE_NAME . + jf docker push $IMAGE_NAME + + - name: Publish Build info With JFrog CLI + env: + # Generated and maintained by GitHub + JFROG_CLI_BUILD_NAME: jfrog-spring-petclinic + # JFrog organization secret + JFROG_CLI_BUILD_NUMBER : ${{ github.run_number }} + run: | + # Export the build name and build nuber + # Collect environment variables for the build + jf rt build-collect-env + # Collect VCS details from git and add them to the build + jf rt build-add-git + # Publish build info + jf rt build-publish \ No newline at end of file From 99266f82a6157b1d1e59672593bc45e09d402cd4 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:03:40 +0200 Subject: [PATCH 66/70] last version --- .../{docker-build.yml => docker-build.txt} | 1 + .github/workflows/frogbot-scan-repository.yml | 56 ------------------- .github/workflows/maven-build.yml | 23 +------- .github/workflows/run-jmeter-test.yml | 23 -------- 4 files changed, 2 insertions(+), 101 deletions(-) rename .github/workflows/{docker-build.yml => docker-build.txt} (93%) delete mode 100644 .github/workflows/frogbot-scan-repository.yml delete mode 100644 .github/workflows/run-jmeter-test.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.txt similarity index 93% rename from .github/workflows/docker-build.yml rename to .github/workflows/docker-build.txt index cbde7f933..7ba083785 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.txt @@ -1,3 +1,4 @@ +A test for image build and push to JFrog Artifactory --- name: Build to Docker Hub diff --git a/.github/workflows/frogbot-scan-repository.yml b/.github/workflows/frogbot-scan-repository.yml deleted file mode 100644 index fd848885d..000000000 --- a/.github/workflows/frogbot-scan-repository.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: "Frogbot Scan Repository" -on: - workflow_dispatch: - schedule: - # The repository will be scanned once a day at 00:00 GMT. - - cron: "0 0 * * *" -permissions: - contents: write - pull-requests: write - security-events: write - # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN] - # id-token: write -jobs: - scan-repository: - runs-on: ubuntu-latest - strategy: - matrix: - # The repository scanning will be triggered periodically on the following branches. - branch: ["main"] - steps: - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' # See 'Supported distributions' for available options - java-version: '21' - - uses: jfrog/frogbot@v2.9.2 - env: - # [Mandatory] - # JFrog platform URL - JF_URL: ${{ secrets.JF_URL }} - - # [Mandatory if JF_USER and JF_PASSWORD are not provided] - # JFrog access token with 'read' permissions on Xray service - JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }} - - # [Mandatory if JF_ACCESS_TOKEN is not provided] - # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD - # JF_USER: ${{ secrets.JF_USER }} - - # [Mandatory if JF_ACCESS_TOKEN is not provided] - # JFrog password. Must be provided with JF_USER - # JF_PASSWORD: ${{ secrets.JF_PASSWORD }} - - # [Mandatory] - # The GitHub token is automatically generated for the job - JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # [Mandatory] - # The name of the branch on which Frogbot will perform the scan - JF_GIT_BASE_BRANCH: ${{ matrix.branch }} - - # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN] - # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD - # with: - # oidc-provider-name: "" - #JF_PATH_EXCLUSIONS: "*gradle*" \ No newline at end of file diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index fcb1101f6..b2e85696e 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -48,28 +48,6 @@ jobs: - Build_Container_and_push_to_Artifactory: - runs-on: ubuntu-latest - needs: Run_test - steps: - - name: checkout Git repository - uses: actions/checkout@v4 - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' # See 'Supported distributions' for available options - java-version: '21' - - name: Login to Jfrog Artifactory - uses: docker/login-action@v3 - with: - registry: rodi26.jfrog.io - username: 'rodolphe.fontaine@orange.fr' - password: ${{ secrets.JF_ACCESS_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v6 - with: - push: true - tags: rodi26.jfrog.io/rodi26-docker/spring-petclinic:latest scan-repository: runs-on: ubuntu-latest @@ -153,6 +131,7 @@ jobs: build-and-tag: runs-on: ubuntu-latest + needs: Run_test steps: - name: Checkout code uses: actions/checkout@v2 diff --git a/.github/workflows/run-jmeter-test.yml b/.github/workflows/run-jmeter-test.yml deleted file mode 100644 index e4fb6768a..000000000 --- a/.github/workflows/run-jmeter-test.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Test Action -on: - push -jobs: - test-action: - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '21' ] - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v4 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: Run JMeter Action on a test - uses: rbhadti94/apache-jmeter-action@v0.5.0 - with: - testFilePath: src/test/jmeter/petclinic_test_plan.jmx - outputReportsFolder: reports/ - args: "--loglevel INFO" \ No newline at end of file From c60ce956b1ea047185e54b006ef57dc9fb21f6ef Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:11:05 +0200 Subject: [PATCH 67/70] final version 2 --- .github/workflows/maven-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index b2e85696e..b904bdd81 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -51,7 +51,7 @@ jobs: scan-repository: runs-on: ubuntu-latest - needs: Build_Container_and_push_to_Artifactory + needs: build-and-tag strategy: matrix: # The repository scanning will be triggered periodically on the following branches. From 9b391dbc7ba953d955a2929773d5ca9be86a7b1e Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:12:12 +0200 Subject: [PATCH 68/70] final version 3 --- .github/workflows/maven-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index b904bdd81..6b98c425c 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -98,7 +98,7 @@ jobs: test-action: runs-on: ubuntu-latest - needs: Build_Container_and_push_to_Artifactory + needs: build-and-tag strategy: matrix: java: [ '21' ] From 93e0aaf2343f3e952974c96e8fdffb56b95b94f6 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:20:05 +0200 Subject: [PATCH 69/70] after changing name --- .github/workflows/docker-build.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-build.txt b/.github/workflows/docker-build.txt index 7ba083785..0d328d7f7 100644 --- a/.github/workflows/docker-build.txt +++ b/.github/workflows/docker-build.txt @@ -1,4 +1,5 @@ A test for image build and push to JFrog Artifactory +this is a test --- name: Build to Docker Hub From 0d90f8a44eda1b92953ec4fd63aaff7259c09d59 Mon Sep 17 00:00:00 2001 From: Rodolphe Fontaine <30529563+Rodi26@users.noreply.github.com> Date: Fri, 18 Oct 2024 19:23:58 +0200 Subject: [PATCH 70/70] Readme modified --- readme.md | 180 +++++++++--------------------------------------------- 1 file changed, 28 insertions(+), 152 deletions(-) diff --git a/readme.md b/readme.md index 43d6bab49..fb3a860fb 100644 --- a/readme.md +++ b/readme.md @@ -1,162 +1,38 @@ -# Spring PetClinic Sample Application [![Build Status](https://github.com/spring-projects/spring-petclinic/actions/workflows/maven-build.yml/badge.svg)](https://github.com/spring-projects/spring-petclinic/actions/workflows/maven-build.yml) +# -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/spring-projects/spring-petclinic) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=7517918) +---- -## Understanding the Spring Petclinic application with a few diagrams +# JFrog Spring PetClinic -[See the presentation here](https://speakerdeck.com/michaelisvy/spring-petclinic-sample-application) +This repository is a customized fork of the original [Spring PetClinic](https://github.com/spring-projects/spring-petclinic). -## Run Petclinic locally +## Modifications -Spring Petclinic is a [Spring Boot](https://spring.io/guides/gs/spring-boot) application built using [Maven](https://spring.io/guides/gs/maven/) or [Gradle](https://spring.io/guides/gs/gradle/). You can build a jar file and run it from the command line (it should work just as well with Java 17 or newer): +The following enhancements and changes have been made to the original project: -```bash -git clone https://github.com/spring-projects/spring-petclinic.git -cd spring-petclinic -./mvnw package -java -jar target/*.jar +- **Upgrade to JVM 21**: The project now runs on the latest JVM version 21 for improved performance and compatibility. +- **Security Improvements**: Resolved dependency issues related to: + - [CVE-2021-26291](https://nvd.nist.gov/vuln/detail/CVE-2021-26291) + - [CVE-2024-25710](https://nvd.nist.gov/vuln/detail/CVE-2024-25710) + +## Continuous Integration (CI) Pipeline + +A robust CI pipeline has been set up with the following automated steps: + +1. **Build**: Compile the project using Maven. +2. **Test**: Run tests using Maven to ensure code quality and reliability. +3. **Dockerize**: Build and tag the Docker container for deployment. +4. **Security Scan**: Launch a vulnerability scan to maintain robust security standards. + +## Docker Instructions + +The `Dockerfile` is located in the root directory. You can run the application locally on a Linux environment using Docker with the following command: + +```other +docker run -d -p 8080:8080 rodi26.jfrog.io/rodi26-docker-local/jfrog-spring-petclinic:latest ``` -You can then access the Petclinic at . +This command will start the application in detached mode, making it accessible on port 8080. -petclinic-screenshot +---- -Or you can run it from Maven directly using the Spring Boot Maven plugin. If you do this, it will pick up changes that you make in the project immediately (changes to Java source files require a compile as well - most people use an IDE for this): - -```bash -./mvnw spring-boot:run -``` - -> NOTE: If you prefer to use Gradle, you can build the app using `./gradlew build` and look for the jar file in `build/libs`. - -## Building a Container - -There is no `Dockerfile` in this project. You can build a container image (if you have a docker daemon) using the Spring Boot build plugin: - -```bash -./mvnw spring-boot:build-image -``` - -## In case you find a bug/suggested improvement for Spring Petclinic - -Our issue tracker is available [here](https://github.com/spring-projects/spring-petclinic/issues). - -## Database configuration - -In its default configuration, Petclinic uses an in-memory database (H2) which -gets populated at startup with data. The h2 console is exposed at `http://localhost:8080/h2-console`, -and it is possible to inspect the content of the database using the `jdbc:h2:mem:` URL. The UUID is printed at startup to the console. - -A similar setup is provided for MySQL and PostgreSQL if a persistent database configuration is needed. Note that whenever the database type changes, the app needs to run with a different profile: `spring.profiles.active=mysql` for MySQL or `spring.profiles.active=postgres` for PostgreSQL. See the [Spring Boot documentation](https://docs.spring.io/spring-boot/how-to/properties-and-configuration.html#howto.properties-and-configuration.set-active-spring-profiles) for more detail on how to set the active profile. - -You can start MySQL or PostgreSQL locally with whatever installer works for your OS or use docker: - -```bash -docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.0 -``` - -or - -```bash -docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:17.0 -``` - -Further documentation is provided for [MySQL](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt) -and [PostgreSQL](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/db/postgres/petclinic_db_setup_postgres.txt). - -Instead of vanilla `docker` you can also use the provided `docker-compose.yml` file to start the database containers. Each one has a profile just like the Spring profile: - -```bash -docker-compose --profile mysql up -``` - -or - -```bash -docker-compose --profile postgres up -``` - -## Test Applications - -At development time we recommend you use the test applications set up as `main()` methods in `PetClinicIntegrationTests` (using the default H2 database and also adding Spring Boot Devtools), `MySqlTestApplication` and `PostgresIntegrationTests`. These are set up so that you can run the apps in your IDE to get fast feedback and also run the same classes as integration tests against the respective database. The MySql integration tests use Testcontainers to start the database in a Docker container, and the Postgres tests use Docker Compose to do the same thing. - -## Compiling the CSS - -There is a `petclinic.css` in `src/main/resources/static/resources/css`. It was generated from the `petclinic.scss` source, combined with the [Bootstrap](https://getbootstrap.com/) library. If you make changes to the `scss`, or upgrade Bootstrap, you will need to re-compile the CSS resources using the Maven profile "css", i.e. `./mvnw package -P css`. There is no build profile for Gradle to compile the CSS. - -## Working with Petclinic in your IDE - -### Prerequisites - -The following items should be installed in your system: - -- Java 17 or newer (full JDK, not a JRE) -- [Git command line tool](https://help.github.com/articles/set-up-git) -- Your preferred IDE - - Eclipse with the m2e plugin. Note: when m2e is available, there is an m2 icon in `Help -> About` dialog. If m2e is - not there, follow the install process [here](https://www.eclipse.org/m2e/) - - [Spring Tools Suite](https://spring.io/tools) (STS) - - [IntelliJ IDEA](https://www.jetbrains.com/idea/) - - [VS Code](https://code.visualstudio.com) - -### Steps - -1. On the command line run: - - ```bash - git clone https://github.com/spring-projects/spring-petclinic.git - ``` - -1. Inside Eclipse or STS: - - Open the project via `File -> Import -> Maven -> Existing Maven project`, then select the root directory of the cloned repo. - - Then either build on the command line `./mvnw generate-resources` or use the Eclipse launcher (right-click on project and `Run As -> Maven install`) to generate the CSS. Run the application's main method by right-clicking on it and choosing `Run As -> Java Application`. - -1. Inside IntelliJ IDEA: - - In the main menu, choose `File -> Open` and select the Petclinic [pom.xml](pom.xml). Click on the `Open` button. - - - CSS files are generated from the Maven build. You can build them on the command line `./mvnw generate-resources` or right-click on the `spring-petclinic` project then `Maven -> Generates sources and Update Folders`. - - - A run configuration named `PetClinicApplication` should have been created for you if you're using a recent Ultimate version. Otherwise, run the application by right-clicking on the `PetClinicApplication` main class and choosing `Run 'PetClinicApplication'`. - -1. Navigate to the Petclinic - - Visit [http://localhost:8080](http://localhost:8080) in your browser. - -## Looking for something in particular? - -|Spring Boot Configuration | Class or Java property files | -|--------------------------|---| -|The Main Class | [PetClinicApplication](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java) | -|Properties Files | [application.properties](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources) | -|Caching | [CacheConfiguration](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/java/org/springframework/samples/petclinic/system/CacheConfiguration.java) | - -## Interesting Spring Petclinic branches and forks - -The Spring Petclinic "main" branch in the [spring-projects](https://github.com/spring-projects/spring-petclinic) -GitHub org is the "canonical" implementation based on Spring Boot and Thymeleaf. There are -[quite a few forks](https://spring-petclinic.github.io/docs/forks.html) in the GitHub org -[spring-petclinic](https://github.com/spring-petclinic). If you are interested in using a different technology stack to implement the Pet Clinic, please join the community there. - -## Interaction with other open-source projects - -One of the best parts about working on the Spring Petclinic application is that we have the opportunity to work in direct contact with many Open Source projects. We found bugs/suggested improvements on various topics such as Spring, Spring Data, Bean Validation and even Eclipse! In many cases, they've been fixed/implemented in just a few days. -Here is a list of them: - -| Name | Issue | -|------|-------| -| Spring JDBC: simplify usage of NamedParameterJdbcTemplate | [SPR-10256](https://jira.springsource.org/browse/SPR-10256) and [SPR-10257](https://jira.springsource.org/browse/SPR-10257) | -| Bean Validation / Hibernate Validator: simplify Maven dependencies and backward compatibility |[HV-790](https://hibernate.atlassian.net/browse/HV-790) and [HV-792](https://hibernate.atlassian.net/browse/HV-792) | -| Spring Data: provide more flexibility when working with JPQL queries | [DATAJPA-292](https://jira.springsource.org/browse/DATAJPA-292) | - -## Contributing - -The [issue tracker](https://github.com/spring-projects/spring-petclinic/issues) is the preferred channel for bug reports, feature requests and submitting pull requests. - -For pull requests, editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at . If you have not previously done so, please fill out and submit the [Contributor License Agreement](https://cla.pivotal.io/sign/spring). - -## License - -The Spring PetClinic sample application is released under version 2.0 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0).