From 5a3e9e3f181d5cb430bb102f45ceb260e9e7b9f7 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Wed, 10 Jan 2024 10:54:56 +0100 Subject: [PATCH 1/8] Ajouter .gitlab-ci.yml. refs #15 --- .gitlab-ci.yml | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..e677ee3 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,86 @@ +variables: + MAVEN_OPTS: -Dmaven.repo.local=.m2/repository + +image: registry.forgemia.inra.fr/agroclim/common/docker-projets-java:latest + +stages: + - build + - test + - code-check + +cache: + paths: + - .m2/repository + +build_job: + stage: build + script: + - echo "Maven compile started" + - mvn clean compile test-compile + - ls -lha /usr/bin/tokei + - /usr/bin/tokei --version + artifacts: + paths: + - target + +test_job: + stage: test + needs: ["build_job"] + script: + - echo "Maven test started" + - mvn test org.jacoco:jacoco-maven-plugin:report-aggregate + artifacts: + when: always + paths: + - target + reports: + junit: + - target/surefire-reports/TEST-*.xml + - target/failsafe-reports/TEST-*.xml + +checkstyle_job: + stage: code-check + needs: ["build_job"] + script: + - mvn checkstyle:checkstyle + artifacts: + paths: + - target + +pmd_job: + stage: code-check + needs: ["build_job"] + script: + - mvn pmd:pmd + artifacts: + paths: + - target + +cpd_job: + stage: code-check + needs: ["build_job"] + script: + - mvn pmd:cpd + artifacts: + paths: + - target + +cobertura_job: + stage: deploy + needs: ["test_job"] + script: + # convert report from jacoco to cobertura, using relative project path + - python /opt/cover2cover.py + target/site/jacoco-aggregate/jacoco.xml + www-client/target/site/jacoco-aggregate/jacoco.xml + www-server/target/site/jacoco-aggregate/jacoco.xml + www-shared/target/site/jacoco-aggregate/jacoco.xml + $CI_PROJECT_DIR/src/main/java/ + $CI_PROJECT_DIR/www-client/src/main/java/ + $CI_PROJECT_DIR/www-server/src/main/java/ + $CI_PROJECT_DIR/www-shared/src/main/java/ + > target/cobertura.xml + artifacts: + paths: + - target + -- GitLab From 8a41fd362aa6bbe17eb0f83aad1fd1b8ab8d979e Mon Sep 17 00:00:00 2001 From: Olivier Maury <olivier.maury@inrae.fr> Date: Wed, 10 Jan 2024 10:57:41 +0100 Subject: [PATCH 2/8] =?UTF-8?q?Mettre=20=C3=A0=20jour=20le=20fichier=20.gi?= =?UTF-8?q?tlab-ci.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e677ee3..27c4960 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,7 @@ stages: - build - test - code-check + - deploy cache: paths: -- GitLab From 362714d00ea81ab9417b65b5d2e18e3587a43a30 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 09:32:44 +0100 Subject: [PATCH 3/8] Configurer CI/CD. refs #15 --- .gitlab-ci.yml | 52 +++++++++++++++++++++++++++++++--------------- www-client/pom.xml | 2 ++ www-server/pom.xml | 19 +++++++++++++++++ 3 files changed, 56 insertions(+), 17 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27c4960..eff8fb1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,17 +1,22 @@ variables: - MAVEN_OPTS: -Dmaven.repo.local=.m2/repository + MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository" image: registry.forgemia.inra.fr/agroclim/common/docker-projets-java:latest stages: - build - test + - install - code-check - deploy cache: paths: - .m2/repository + - target + - www-client/target + - www-server/target + - www-shared/target build_job: stage: build @@ -21,8 +26,12 @@ build_job: - ls -lha /usr/bin/tokei - /usr/bin/tokei --version artifacts: + when: always paths: - target + - www-client/target + - www-server/target + - www-shared/target test_job: stage: test @@ -34,37 +43,38 @@ test_job: when: always paths: - target + - www-client/target + - www-server/target + - www-shared/target reports: junit: - target/surefire-reports/TEST-*.xml - target/failsafe-reports/TEST-*.xml +install_job: + stage: install + needs: ["test_job"] + script: + - echo "Maven packaging started" + - mvn install -DskipTests + checkstyle_job: stage: code-check - needs: ["build_job"] + needs: ["install_job"] script: - mvn checkstyle:checkstyle - artifacts: - paths: - - target pmd_job: stage: code-check - needs: ["build_job"] + needs: ["install_job"] script: - mvn pmd:pmd - artifacts: - paths: - - target cpd_job: stage: code-check - needs: ["build_job"] + needs: ["install_job"] script: - mvn pmd:cpd - artifacts: - paths: - - target cobertura_job: stage: deploy @@ -72,16 +82,24 @@ cobertura_job: script: # convert report from jacoco to cobertura, using relative project path - python /opt/cover2cover.py - target/site/jacoco-aggregate/jacoco.xml www-client/target/site/jacoco-aggregate/jacoco.xml www-server/target/site/jacoco-aggregate/jacoco.xml www-shared/target/site/jacoco-aggregate/jacoco.xml - $CI_PROJECT_DIR/src/main/java/ $CI_PROJECT_DIR/www-client/src/main/java/ $CI_PROJECT_DIR/www-server/src/main/java/ $CI_PROJECT_DIR/www-shared/src/main/java/ > target/cobertura.xml + +# https://agroclim.pages.mia.inra.fr/agrometinfo/www/ +pages: + stage: deploy + needs: ["install_job"] + script: + - mvn site -DskipTests + - mv www-client/target/site/ target/site/www-client + - mv www-server/target/site/ target/site/www-server + - mv www-shared/target/site/ target/site/www-shared artifacts: paths: - - target - + - target/site + publish: target/site diff --git a/www-client/pom.xml b/www-client/pom.xml index 37cf75a..353709b 100644 --- a/www-client/pom.xml +++ b/www-client/pom.xml @@ -25,6 +25,7 @@ </properties> <dependencies> + <!-- AgroMetInfo --> <dependency> <groupId>${project.groupId}</groupId> <artifactId>www-shared</artifactId> @@ -37,6 +38,7 @@ <version>${project.version}</version> <classifier>sources</classifier> </dependency> + <!-- GWT --> <dependency> <groupId>org.gwtproject</groupId> <artifactId>gwt-user</artifactId> diff --git a/www-server/pom.xml b/www-server/pom.xml index 182a39f..e2d5bb8 100644 --- a/www-server/pom.xml +++ b/www-server/pom.xml @@ -187,6 +187,25 @@ </dependency> </dependencies> + <repositories> + <repository> + <id>sava-gitlab-maven</id> + <url>https://forgemia.inra.fr/api/v4/projects/5817/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>sava-gitlab-maven</id> + <url>https://forgemia.inra.fr/api/v4/projects/5817/packages/maven</url> + </repository> + + <snapshotRepository> + <id>sava-gitlab-maven</id> + <url>https://forgemia.inra.fr/api/v4/projects/5817/packages/maven</url> + </snapshotRepository> + </distributionManagement> + <build> <resources> <resource> -- GitLab From edf19b92f3109094865a57d241789f057d78c758 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 09:39:01 +0100 Subject: [PATCH 4/8] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20tokei.=20refs?= =?UTF-8?q?=20#15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/sloccount.sh | 40 ++++++++++++++++++---------------------- bin/tokei2cloc.py | 43 ++++++++++++++----------------------------- 2 files changed, 32 insertions(+), 51 deletions(-) diff --git a/bin/sloccount.sh b/bin/sloccount.sh index 2ad6993..e35660c 100755 --- a/bin/sloccount.sh +++ b/bin/sloccount.sh @@ -1,28 +1,24 @@ #!/bin/bash - +ROOT_DIR=$(dirname $(dirname $0)) TOKEI2CLOC=$(dirname $0)/tokei2cloc.py -TOKEITGZ=tokei-v7.0.3-x86_64-unknown-linux-gnu.tar.gz -if [ ! -f bin/tokei ]; then - mkdir -p ~/tmp bin - if [ ! -f ~/tmp/$TOKEITGZ ]; then - wget "https://github.com/Aaronepower/tokei/releases/download/v7.0.3/$TOKEITGZ" -O ~/tmp/$TOKEITGZ +TOKEI=$(command -v tokei) +if [ ! -x "$TOKEI" ]; then + TOKEITGZ=tokei-x86_64-unknown-linux-gnu.tar.gz + if [ ! -f bin/tokei ]; then + mkdir -p ~/tmp + if [ ! -f ~/tmp/$TOKEITGZ ]; then + wget "https://github.com/Aaronepower/tokei/releases/download/v12.1.2/$TOKEITGZ" -O ~/tmp/$TOKEITGZ + fi + tar zxf ~/tmp/$TOKEITGZ -C bin fi - tar zxf ~/tmp/$TOKEITGZ -C bin + TOKEI=bin/tokei fi -if [ -f bin/tokei ]; then - mkdir -p target - bin/tokei -f -o json src | $TOKEI2CLOC > target/cloc.xml - exit +if [ ! -f $TOKEI ]; then + echo "Strange, $TOKEI does not exist!" + exit 1 fi -SLOCCOUNT=$(which sloccount); -if [ "$SLOCCOUNT" != "" ]; then - DATADIR=$(dirname $0)/.slocdata; - if [ ! -f $DATADIR ]; then - mkdir -p $DATADIR; - fi - mkdir -p target ; - /usr/bin/sloccount --datadir $DATADIR --duplicates --wide --details src > target/sloccount.sc; -else - echo "sloccount not found!"; -fi +echo "tokei is installed at $TOKEI" +$TOKEI --version +mkdir -p $ROOT_DIR/target +$TOKEI -f -o json $ROOT_DIR/sava-core/src $ROOT_DIR/sava-core-jakarta/src $ROOT_DIR/sava-example/src | $TOKEI2CLOC > $ROOT_DIR/target/cloc.xml diff --git a/bin/tokei2cloc.py b/bin/tokei2cloc.py index f554a07..bc41a97 100755 --- a/bin/tokei2cloc.py +++ b/bin/tokei2cloc.py @@ -1,29 +1,12 @@ #!/usr/bin/env python3 # -*- coding: UTF-8 -*- -# -# data.pheno.fr - Phenological data portal of TEMPO -# Copyright © 2019 TEMPO (contact-tempo@inrae.fr) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -# $Id: tokei2cloc.py 77 2019-01-11 17:24:18Z omaury $ +# $Id$ # # Author : Olivier Maury # Creation Date : 2019-01-15 10:30:29 +0200 -# Last Revision : $Date: 2019-01-11 18:24:18 +0100 (ven., 11 janv. 2019) $ -# Revision : $Rev: 77 $ +# Last Revision : $Date$ +# Revision : $Rev$ u""" [1mNOM[m %prog - Tokei2Cloc @@ -38,10 +21,10 @@ u""" Olivier Maury [1mVERSION[m - $Date: 2019-01-11 18:24:18 +0100 (ven., 11 janv. 2019) $ + $Date$ """ -__revision__ = "$Rev: 77 $" +__revision__ = "$Rev$" __author__ = "Olivier Maury" import json import sys @@ -52,8 +35,10 @@ results = json.loads(sys.stdin.read()) nb_files = 0 nb_lines = 0 for lang in results: - nb_files += len(results[lang]['stats']) - nb_lines += int(results[lang]['lines']) + nb_files += len(results[lang]['reports']) + nb_lines += int(results[lang]['blanks']) + nb_lines += int(results[lang]['code']) + nb_lines += int(results[lang]['comments']) print("""<?xml version="1.0"?><results> <header> @@ -73,11 +58,11 @@ total_blank = 0 total_comment = 0 total_code = 0 for lang in results: - for result in results[lang]['stats']: - blank = int(result['blanks']) - comment = int(result['comments']) - code = int(result['code']) - print(""" <file name="%s" blank="%d" comment="%d" code="%d" language="%s" />""" % + for result in results[lang]['reports']: + blank = int(result['stats']['blanks']) + comment = int(result['stats']['comments']) + code = int(result['stats']['code']) + print(""" <file name="%s" blank="%d" comment="%d" code="%d" language="%s" />""" % (result['name'], blank, comment, code, lang)) total_blank += blank total_comment += comment -- GitLab From 23e7557bd1c6e43c091990361dcff343ae1f8a83 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 09:44:52 +0100 Subject: [PATCH 5/8] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20tokei.=20refs?= =?UTF-8?q?=20#15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/sloccount.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sloccount.sh b/bin/sloccount.sh index e35660c..5b15d00 100755 --- a/bin/sloccount.sh +++ b/bin/sloccount.sh @@ -21,4 +21,4 @@ fi echo "tokei is installed at $TOKEI" $TOKEI --version mkdir -p $ROOT_DIR/target -$TOKEI -f -o json $ROOT_DIR/sava-core/src $ROOT_DIR/sava-core-jakarta/src $ROOT_DIR/sava-example/src | $TOKEI2CLOC > $ROOT_DIR/target/cloc.xml +$TOKEI -f -o json $ROOT_DIR/www-client/src $ROOT_DIR/www-server/src $ROOT_DIR/www-shared/src | $TOKEI2CLOC > $ROOT_DIR/target/cloc.xml -- GitLab From e64f9d870be3a0625c90090b707fb62fffd9fbd1 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 09:57:45 +0100 Subject: [PATCH 6/8] Corriger .gitlab-ci.yml. refs #15 --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eff8fb1..e4e5b27 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,6 +57,10 @@ install_job: script: - echo "Maven packaging started" - mvn install -DskipTests + artifacts: + when: always + paths: + - .m2/repository checkstyle_job: stage: code-check -- GitLab From 8405ce6a041b709ef263ebd8611bcfa5e5439139 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 10:22:48 +0100 Subject: [PATCH 7/8] Corriger checkstyle-suppressions.xml. refs #15 --- .gitlab-ci.yml | 5 +++++ config/checkstyle-suppressions.xml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e4e5b27..00886f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,11 @@ cache: - www-server/target - www-shared/target +dependencies_job: + stage: build + script: + - mvn -B dependency:resolve dependency:resolve-plugins + build_job: stage: build script: diff --git a/config/checkstyle-suppressions.xml b/config/checkstyle-suppressions.xml index 7f911a7..0e5d10b 100644 --- a/config/checkstyle-suppressions.xml +++ b/config/checkstyle-suppressions.xml @@ -5,4 +5,8 @@ <suppressions> <suppress checks=".*" files="[/\\]generated-sources[/\\]" /> <suppress checks="JavadocPackage|MagicNumber" files="[/\\]src[/\\]test[/\\]" /> + <!-- www-client/config/checkstyle-suppressions.xml --> + <suppress checks="MagicNumber" files="ColorSequences.java" /> + <!-- www-server/config/checkstyle-suppressions.xml --> + <suppress checks="DesignForExtension" files=".*Resource.java" /> </suppressions> -- GitLab From 6a132f19f0be8fde6791515ffe2b0b5973ca67e5 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Fri, 12 Jan 2024 10:39:16 +0100 Subject: [PATCH 8/8] Corriger .gitlab-ci.yml. refs #15 --- .gitlab-ci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00886f3..e4e5b27 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,11 +18,6 @@ cache: - www-server/target - www-shared/target -dependencies_job: - stage: build - script: - - mvn -B dependency:resolve dependency:resolve-plugins - build_job: stage: build script: -- GitLab