From 3ba5964cd162d7cfe4be13b2ebe566c33eb75e7b Mon Sep 17 00:00:00 2001 From: az Date: Wed, 24 Nov 2021 19:18:46 +0100 Subject: [PATCH] add releases to ci --- .gitlab-ci.yml | 52 +++++++++++++++++++++++++++++++++++++++++++++++++- build.gradle | 2 +- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 855025b..3eca83e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,17 +4,24 @@ stages: - build - test - publish + - fatjar + - release before_script: - echo "---------- Start CI ----------" - export GRADLE_USER_HOME=`pwd`/.gradle - chmod +x gradlew +cache: + paths: + - .gradle/wrapper + - .gradle/caches + build: stage: build script: - echo "---------- build stage ----------" - - ./gradlew --build-cache assemble + - ./gradlew assemble artifacts: paths: - build/libs/*.jar @@ -22,6 +29,8 @@ build: test: stage: test + rules: + - if: $CI_COMMIT_TAG == null # don't run for git tags image: docker:latest services: - docker:dind @@ -45,6 +54,7 @@ test: reports: junit: build/test-results/test/TEST-*.xml + publish: stage: publish script: @@ -55,5 +65,45 @@ publish: - build/libs/*.jar expire_in: 2 months + +fatjar: + stage: fatjar + rules: + - if: $CI_COMMIT_TAG + before_script: + - echo $CI_JOB_ID + # Writing FATJAR_JOB_ID variable to environment file, as variable is needed in the release stage. + - echo FATJAR_JOB_ID=$CI_JOB_ID >> generate_executables.env + script: + - echo "---------- create fatjar ----------" + - ./gradlew fatJarLatest + artifacts: + paths: + - 'build/libs/provs-fatjar.jar' + reports: + # To ensure we've access to this file in the next stage + dotenv: generate_executables.env + expire_in: 6 months + + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: $CI_COMMIT_TAG # Run this job when a git tag is created manually + script: + - echo '------------ creating a release -------------' + - echo 'Fatjar Job ID:' + - echo $FATJAR_JOB_ID + release: + name: 'Release $CI_COMMIT_TAG' + description: 'Release of provs' + tag_name: '$CI_COMMIT_TAG' + ref: '$CI_COMMIT_TAG' + assets: + links: + - name: provs-fatjar.jar + url: https://gitlab.com/domaindrivenarchitecture/provs/-/jobs/${FATJAR_JOB_ID}/artifacts/raw/build/libs/provs-fatjar.jar + after_script: - echo "---------- End CI ----------" diff --git a/build.gradle b/build.gradle index 1ab4cb9..38fc009 100644 --- a/build.gradle +++ b/build.gradle @@ -111,7 +111,7 @@ task fatJarLatest(type: Jar) { 'Main-Class': 'org.domaindrivenarchitecture.provs.workplace.application.CliKt' } with jar - archiveFileName = 'provs-fat-latest.jar' + archiveFileName = 'provs-fatjar.jar' } task uberjarWorkplace(type: Jar) {