Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Démonstrateur CI Maven
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
DnumArchi
Démonstrateur CI Maven
Commits
df5e958b
Commit
df5e958b
authored
2 years ago
by
erwan.salmon
Browse files
Options
Downloads
Patches
Plain Diff
Suppression références Nexus et fix
parent
d12c86aa
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
.gitlab-ci.yml
+40
-12
40 additions, 12 deletions
.gitlab-ci.yml
.m2-settings.xml
+1
-34
1 addition, 34 deletions
.m2-settings.xml
ci-maven-demo-webapp/pom.xml
+5
-1
5 additions, 1 deletion
ci-maven-demo-webapp/pom.xml
pom.xml
+7
-3
7 additions, 3 deletions
pom.xml
with
53 additions
and
50 deletions
.gitlab-ci.yml
+
40
−
12
View file @
df5e958b
...
...
@@ -9,11 +9,12 @@
# Image Docker Maven par défaut
default
:
image
:
maven:3.8.3-eclipse-temurin-11
image
:
alpine
# Définition des étapes du pipeline
stages
:
-
build
-
prepare
-
compilation
-
test
-
analysis
-
package
...
...
@@ -22,13 +23,7 @@ stages:
# Définition des variables
variables
:
# Configurationn Maven
M2_SETTINGS
:
.m2-settings.xml
# Options par défaut utilisées par toute commande maven
MAVEN_OPTS
:
-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Djava.awt.headless=true
# Options utilisées lors de l'appel direct de maven via le cli
MAVEN_CLI_OPTS
:
-s $M2_SETTINGS --batch-mode -Dorg.slf4j.simpleLogger.showDateTime=true --errors --show-version -DinstallAtEnd=true -DdeployAtEnd=true
ENV_FILE
:
build.env
# Conservation des dépendances de Maven dans le cache
cache
:
...
...
@@ -36,17 +31,44 @@ cache:
-
.m2/repository
-
.sonar/cache
# Job Maven générique
.maven
:
image
:
maven:3.9.0-eclipse-temurin-11
variables
:
# Configuration Maven
M2_SETTINGS
:
$CI_PROJECT_DIR/.m2-settings.xml
# Options par défaut utilisées par toute commande maven
MAVEN_OPTS
:
-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Djava.awt.headless=true
MAVEN_CLI_OPTS
:
-s $M2_SETTINGS --batch-mode -Dorg.slf4j.simpleLogger.showDateTime=true --errors --show-version -DinstallAtEnd=true -DdeployAtEnd=true
#======================================
# Préparation de l'environnement de build
#======================================
get-version
:
stage
:
prepare
extends
:
.maven
script
:
-
APPVERSION=$(mvn -q help:evaluate -Dexpression=project.version -DforceStdout=true)
-
echo "APPVERSION=$APPVERSION" >> $ENV_FILE
-
echo APPVERSION=$APPVERSION
artifacts
:
reports
:
dotenv
:
$ENV_FILE
expire_in
:
1 hour
#======================================
# Construction
#======================================
# Compilation du projet.
compile
:
stage
:
build
stage
:
compilation
extends
:
.maven
script
:
-
mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true compile
artifacts
:
paths
:
-
"
**/target/"
expire_in
:
1 hour
#======================================
# Tests
...
...
@@ -54,6 +76,7 @@ compile:
# Test unitaire et couverture de code
unit-test
:
stage
:
test
extends
:
.maven
script
:
# Mis à jour du timestamp de dernière modification des fichiers compilés pour éviter une recompilation
-
find . -name "*.class" -exec touch {} \+
...
...
@@ -99,6 +122,7 @@ cobertura-convert:
# Analyse du code avec le plugin maven sonar et envoi sur Sonarqube
sonarqube-check
:
stage
:
analysis
extends
:
.maven
variables
:
SONAR_USER_HOME
:
"
${CI_PROJECT_DIR}/.sonar"
# Répertoire de cache pour la tâche d'analyse
GIT_DEPTH
:
"
0"
# Récupération de toutes les branches de git. Utile notamment pour le "git blame"
...
...
@@ -112,6 +136,7 @@ sonarqube-check:
# Génération des rapports maven (qualimétrie, vulnérabilités, ...)
site
:
stage
:
analysis
extends
:
.maven
script
:
# Mis à jour du timestamp de dernière modification des fichiers compilés pour éviter une recompilation
-
find . -name "*.class" -exec touch {} \+
...
...
@@ -121,17 +146,18 @@ site:
artifacts
:
paths
:
-
"
**/target/"
expire_in
:
1 hour
rules
:
# Lancement de l'étape uniquement lors d'un pipeline programmé
-
if
:
$CI_PIPELINE_SOURCE == "schedule"
#======================================
# Construction de l'archive
#======================================
# Construction du jar
build-artefact
:
stage
:
package
extends
:
.maven
dependencies
:
-
unit-test
script
:
...
...
@@ -141,6 +167,7 @@ build-artefact:
artifacts
:
paths
:
-
"
**/target/"
expire_in
:
1 hour
rules
:
# Lancement de l'étape lors de la création d'un tag, d'une merge request ou d'un pipeline programmé
-
if
:
$CI_COMMIT_TAG !=
null
...
...
@@ -169,12 +196,13 @@ pages:
# Publication du jar sur le dépôt gitlab
publish-artefact
:
stage
:
publish
extends
:
.maven
dependencies
:
-
build-artefact
script
:
# Mis à jour du timestamp de dernière modification des fichiers compilés pour éviter une recompilation
-
find . -name "*.class" -exec touch {} \+
-
mvn $MAVEN_CLI_OPTS -DskipTests=true deploy
-
mvn $MAVEN_CLI_OPTS -DskipTests=true
-Ddependency-check.skip=true
deploy
rules
:
# Lancement de l'étape lors de la création d'un tag, d'une merge request ou d'un pipeline programmé
-
if
:
$CI_COMMIT_TAG !=
null
...
...
This diff is collapsed.
Click to expand it.
.m2-settings.xml
+
1
−
34
View file @
df5e958b
<settings
xmlns=
"http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd"
>
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
>
<servers>
<server>
<id>
eco-nexus
</id>
<username>
${env.NEXUS_ID}
</username>
<password>
${env.NEXUS_SECRET}
</password>
</server>
<server>
<id>
eco-gitlab
</id>
<configuration>
...
...
@@ -20,30 +14,3 @@
</configuration>
</server>
</servers>
<mirrors>
<mirror>
<id>
eco-nexus
</id>
<url>
https://forge.din.developpement-durable.gouv.fr/nexus/repository/maven-public
</url>
<mirrorOf>
external:*,!eco-nexus
</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>
eco-ci
</id>
<activation>
<activeByDefault>
true
</activeByDefault>
</activation>
<properties>
<eco-ci-activate>
true
</eco-ci-activate>
</properties>
<repositories>
<repository>
<id>
eco-nexus
</id>
<url>
https://forge.din.developpement-durable.gouv.fr/nexus/repository/maven-public
</url>
</repository>
</repositories>
</profile>
</profiles>
</settings>
This diff is collapsed.
Click to expand it.
ci-maven-demo-webapp/pom.xml
+
5
−
1
View file @
df5e958b
...
...
@@ -10,6 +10,10 @@
</parent>
<artifactId>
ci-maven-demo-webapp
</artifactId>
<properties>
<maven.deploy.skip>
false
</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>
demo.ci-maven-demo
</groupId>
...
...
@@ -54,4 +58,4 @@
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
</project>
This diff is collapsed.
Click to expand it.
pom.xml
+
7
−
3
View file @
df5e958b
...
...
@@ -29,6 +29,10 @@
<plugin.versions-maven.version>
2.8.1
</plugin.versions-maven.version>
<plugin.surefire.version>
3.0.0-M5
</plugin.surefire.version>
<log4j2.version>
2.15.0
</log4j2.version>
<!-- Seul le module web est à déployer -->
<maven.deploy.skip>
true
</maven.deploy.skip>
</properties>
<profiles>
...
...
@@ -44,17 +48,17 @@
<!-- Dépot des artefacts (jar) -->
<repository>
<id>
eco-gitlab
</id>
<url>
${CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven
</url>
<url>
${
env.
CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven
</url>
</repository>
<snapshotRepository>
<id>
eco-gitlab
</id>
<url>
${CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven
</url>
<url>
${
env.
CI_API_V4_URL}/projects/${env.CI_PROJECT_ID}/packages/maven
</url>
</snapshotRepository>
<site>
<!-- Publication sur les Gitlab Pages-->
<id>
site
</id>
<name>
site
</name>
<url>
${CI_PAGES_URL}
</url>
<url>
${
env.
CI_PAGES_URL}
</url>
</site>
</distributionManagement>
</profile>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment