Skip to content
Snippets Groups Projects
Commit df5e958b authored by erwan.salmon's avatar erwan.salmon
Browse files

Suppression références Nexus et fix

parent d12c86aa
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
<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>
......@@ -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>
......@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment