From 110920ccd4ba271e9bc6d82c5eda5845001a8b1b Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Wed, 12 Feb 2025 21:37:21 +0100 Subject: [PATCH] feat: add GitLab CI configuration for build and release stages --- .gitlab-ci.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ pom.xml | 1 + 2 files changed, 46 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..a576eab --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,45 @@ +stages: + - build + - release + +variables: + MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version" + DATE_FORMAT: "%Y%m%d-%H%M%S" + +build: + stage: build + image: maven:3.8.7-openjdk-21 + script: + - mvn $MAVEN_CLI_OPTS clean package + - BUILD_DATE=$(date -u +${DATE_FORMAT}) + - JAR_NAME="PrivateServerPlugin-${BUILD_DATE}.jar" + - mv target/PrivateServerPlugin.jar "${JAR_NAME}" + - echo "BUILD_DATE=${BUILD_DATE}" > build.env + - echo "JAR_NAME=${JAR_NAME}" >> build.env + artifacts: + paths: + - "${JAR_NAME}" + - build.env + expire_in: 1 week + rules: + - if: $CI_COMMIT_BRANCH == "master" + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: build + artifacts: true + script: + - source build.env + - echo "Release ${JAR_NAME} created at ${BUILD_DATE}" + release: + name: "Release ${BUILD_DATE}" + tag_name: "release-${BUILD_DATE}" + description: "Version compilée le ${BUILD_DATE} (commit ${CI_COMMIT_SHORT_SHA})" + assets: + links: + - name: "${JAR_NAME}" + url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${JAR_NAME}" + rules: + - if: $CI_COMMIT_BRANCH == "master" diff --git a/pom.xml b/pom.xml index fb2a1b9..8e2a1e5 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ <build> <defaultGoal>clean package</defaultGoal> + <finalName>PrivateServerPlugin</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> -- GitLab