From 552f21609368b5a1ba13f41ca8cb9d92ca4aa72e Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Sat, 2 Mar 2024 20:20:04 +0100 Subject: [PATCH 1/9] migrate: auto-migrate --- .classpath | 32 ------ .gitignore | 21 +++- .project | 29 ----- .settings/org.eclipse.core.resources.prefs | 5 - .settings/org.eclipse.jdt.core.prefs | 15 --- .settings/org.eclipse.m2e.core.prefs | 4 - .settings/org.jboss.ide.eclipse.as.core.prefs | 2 - Jenkinsfile | 48 ++++++-- module-base/pom.xml | 10 ++ .../plugins/step/mixedocr/ItmRequest.java | 0 .../plugins/step/mixedocr/MixedOcrDao.java | 0 .../plugins/step/mixedocr/MixedOcrPlugin.java | 0 .../step/mixedocr/TestMixedOcrPlugin.java | 0 pom.xml | 108 +++--------------- src/main/resources/.gitignore | 1 - 15 files changed, 85 insertions(+), 190 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 .settings/org.eclipse.core.resources.prefs delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 .settings/org.eclipse.m2e.core.prefs delete mode 100644 .settings/org.jboss.ide.eclipse.as.core.prefs create mode 100644 module-base/pom.xml rename {src => module-base/src}/main/java/de/intranda/goobi/plugins/step/mixedocr/ItmRequest.java (100%) rename {src => module-base/src}/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrDao.java (100%) rename {src => module-base/src}/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrPlugin.java (100%) rename {src => module-base/src}/test/java/de/intranda/goobi/plugins/step/mixedocr/TestMixedOcrPlugin.java (100%) delete mode 100644 src/main/resources/.gitignore diff --git a/.classpath b/.classpath deleted file mode 100644 index cd377e4..0000000 --- a/.classpath +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.gitignore b/.gitignore index b83d222..9f88813 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,20 @@ -/target/ + +# Junk files +*~ +.DS_Store + +# Build +target/ +bin/ +build/ +node_modules/ + +# Eclipse +.project +.classpath +.settings/ + +# IntelliJ IDEA +.idea +*.iml + diff --git a/.project b/.project deleted file mode 100644 index 518f505..0000000 --- a/.project +++ /dev/null @@ -1,29 +0,0 @@ - - - goobi-plugin-step-mixedocr - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.zeroturnaround.eclipse.jrebelNature - - diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index db24ee7..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,15 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/.settings/org.jboss.ide.eclipse.as.core.prefs b/.settings/org.jboss.ide.eclipse.as.core.prefs deleted file mode 100644 index cf3aa3a..0000000 --- a/.settings/org.jboss.ide.eclipse.as.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.jboss.ide.eclipse.as.core.singledeployable.deployableList= diff --git a/Jenkinsfile b/Jenkinsfile index a402834..1d5c15f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,9 +1,13 @@ + pipeline { agent { docker { - image 'maven:3-jdk-11' - args '-v $HOME/.m2:/var/maven/.m2:z -u 1000 -ti -e _JAVA_OPTIONS=-Duser.home=/var/maven -e MAVEN_CONFIG=/var/maven/.m2' + /* using a custom build image with a defined home directory for UID 1000 among other things */ + image 'nexus.intranda.com:4443/maven:3.9.3-eclipse-temurin-17' + registryUrl 'https://nexus.intranda.com:4443' + registryCredentialsId 'jenkins-docker' + args '-v $HOME/.m2:/var/maven/.m2:z -v $HOME/.config:/var/maven/.config -v $HOME/.sonar:/var/maven/.sonar -u 1000 -ti -e _JAVA_OPTIONS=-Duser.home=/var/maven -e MAVEN_CONFIG=/var/maven/.m2' } } @@ -11,24 +15,52 @@ pipeline { buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '15', daysToKeepStr: '90', numToKeepStr: '') } - - stages { stage('prepare') { steps { - sh 'git clean -fdx' + sh 'git reset --hard HEAD && git clean -fdx' } } stage('build') { steps { - sh 'mvn package' + sh 'mvn clean verify -U' recordIssues enabledForFailure: true, aggregatingResults: true, tools: [java(), javaDoc()] } } + + stage('sonarcloud') { + when { + anyOf { + branch 'master' + branch 'sonar_*' + } + } + steps { + withCredentials([string(credentialsId: 'jenkins-sonarcloud', variable: 'TOKEN')]) { + sh 'mvn verify sonar:sonar -Dsonar.token=$TOKEN -U' + } + } + } + } - + post { + always { + junit "**/target/surefire-reports/*.xml" + step([ + $class : 'JacocoPublisher', + execPattern : '**/target/jacoco.exec', + classPattern : '**/target/classes/', + sourcePattern : '**/src/main/java', + exclusionPattern : '**/*Test.class' + ]) + recordIssues ( + enabledForFailure: true, aggregatingResults: false, + tools: [checkStyle(pattern: 'target/checkstyle-result.xml', reportEncoding: 'UTF-8')] + ) + dependencyCheckPublisher pattern: 'target/dependency-check-report.xml' + } success { archiveArtifacts artifacts: '**/target/*.jar, */plugin_*.xml, plugin_*.xml', fingerprint: true, onlyIfSuccessful: true } @@ -42,5 +74,3 @@ pipeline { } } } - -/* vim: set ts=2 sw=2 tw=120 et :*/ \ No newline at end of file diff --git a/module-base/pom.xml b/module-base/pom.xml new file mode 100644 index 0000000..aba7877 --- /dev/null +++ b/module-base/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-step-mixedocr + 24.03-SNAPSHOT + + plugin-step-mixedocr-base + jar + \ No newline at end of file diff --git a/src/main/java/de/intranda/goobi/plugins/step/mixedocr/ItmRequest.java b/module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/ItmRequest.java similarity index 100% rename from src/main/java/de/intranda/goobi/plugins/step/mixedocr/ItmRequest.java rename to module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/ItmRequest.java diff --git a/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrDao.java b/module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrDao.java similarity index 100% rename from src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrDao.java rename to module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrDao.java diff --git a/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrPlugin.java b/module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrPlugin.java similarity index 100% rename from src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrPlugin.java rename to module-base/src/main/java/de/intranda/goobi/plugins/step/mixedocr/MixedOcrPlugin.java diff --git a/src/test/java/de/intranda/goobi/plugins/step/mixedocr/TestMixedOcrPlugin.java b/module-base/src/test/java/de/intranda/goobi/plugins/step/mixedocr/TestMixedOcrPlugin.java similarity index 100% rename from src/test/java/de/intranda/goobi/plugins/step/mixedocr/TestMixedOcrPlugin.java rename to module-base/src/test/java/de/intranda/goobi/plugins/step/mixedocr/TestMixedOcrPlugin.java diff --git a/pom.xml b/pom.xml index 46ab8d7..803e585 100644 --- a/pom.xml +++ b/pom.xml @@ -1,104 +1,28 @@ 4.0.0 - de.intranda.goobi.plugins.step - mixedocr - 24.02 - jar - - 0.0.1-SNAPSHOT - plugin_intranda_step_mixedocr - UTF-8 - 1.8 - 1.8 - 24.02 - - http://maven.apache.org - - - intranda-releases - https://nexus.intranda.com/repository/maven-releases - - + + io.goobi.workflow + workflow-base + 24.03-SNAPSHOT + + io.goobi.workflow.plugin + plugin-step-mixedocr + pom + + module-base + intranda-public https://nexus.intranda.com/repository/maven-public - - ${jar.name} - - - org.apache.maven.plugins - maven-surefire-plugin - 2.12.4 - - true - - - - org.codehaus.mojo - buildnumber-maven-plugin - 1.4 - - - validate - - create - - - - - 10 - false - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.0 - - - - ${maven.build.timestamp} - - - - Versions - - ${project.version} - ${buildNumber} - ${scmBranch} - ${goobi.version} - - - - - - - - - de.intranda.goobi.workflow - goobi-core-jar - ${goobi.version} - - - org.projectlombok - lombok - 1.18.6 - provided - - - junit - junit - [4.13.1,) - test + io.goobi.workflow + workflow-core + ${project.version} + classes - - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-step-mixedocr.git - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-step-mixedocr.git - - + \ No newline at end of file diff --git a/src/main/resources/.gitignore b/src/main/resources/.gitignore deleted file mode 100644 index 4658b7a..0000000 --- a/src/main/resources/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/rebel.xml From f365cf819c596ac0658011a59c5b24b9e486a490 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 4 Mar 2024 09:02:22 +0100 Subject: [PATCH 2/9] pom.xml: fix relativePath reference in parent --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 803e585..a6b815f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,6 +4,7 @@ io.goobi.workflow workflow-base 24.03-SNAPSHOT + io.goobi.workflow.plugin plugin-step-mixedocr From d4f18f523ccfb3ffccb1747f2f20c0e886327908 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Thu, 7 Mar 2024 12:01:02 +0100 Subject: [PATCH 3/9] fix: pom.xml: change artifactId to common naming scheme --- module-base/pom.xml | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module-base/pom.xml b/module-base/pom.xml index aba7877..362cd98 100644 --- a/module-base/pom.xml +++ b/module-base/pom.xml @@ -2,9 +2,9 @@ 4.0.0 io.goobi.workflow.plugin - plugin-step-mixedocr + plugin-step-mixed-ocr 24.03-SNAPSHOT - plugin-step-mixedocr-base + plugin-step-mixed-ocr-base jar \ No newline at end of file diff --git a/pom.xml b/pom.xml index a6b815f..0cd3a18 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ io.goobi.workflow.plugin - plugin-step-mixedocr + plugin-step-mixed-ocr pom module-base From ea62f36b11dcbed16cd377e9e846d1b928d38550 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Thu, 21 Mar 2024 14:42:11 +0100 Subject: [PATCH 4/9] Jenkinsfile: deploy lib module to nexus if present --- Jenkinsfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 1d5c15f..7a92667 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,6 +43,21 @@ pipeline { } } + stage('deploy-libs') { + when { + anyOf { + branch 'master' + branch 'develop' + } + } + steps { + script { + if (fileExists('module-lib/pom.xml')) { + sh 'mvn -f module-lib/pom.xml deploy' + } + } + } + } } post { From 46033aa6793f06d33168547ec4b97214bd3b203c Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Thu, 21 Mar 2024 15:16:04 +0100 Subject: [PATCH 5/9] Jenkinsfile: also deploy missing plugin parent pom and adapt to new artifacts path --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7a92667..37bbe3a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -53,6 +53,7 @@ pipeline { steps { script { if (fileExists('module-lib/pom.xml')) { + sh 'mvn -N deploy' sh 'mvn -f module-lib/pom.xml deploy' } } @@ -77,7 +78,7 @@ pipeline { dependencyCheckPublisher pattern: 'target/dependency-check-report.xml' } success { - archiveArtifacts artifacts: '**/target/*.jar, */plugin_*.xml, plugin_*.xml', fingerprint: true, onlyIfSuccessful: true + archiveArtifacts artifacts: '**/target/*.jar, install/*', fingerprint: true, onlyIfSuccessful: true } changed { emailext( From 946785e221e13a43e32fb4d917ba1cb82585e47b Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Mon, 15 Apr 2024 14:44:29 +0200 Subject: [PATCH 6/9] release: fix Jenkinsfile and GitHub actions, move install artifacts --- .github/workflows/develop-build.yml | 48 +++++++++++++++++++ .github/workflows/release-build.yml | 48 +++++++++++++++++++ Jenkinsfile | 23 +++++++-- .../plugin_intranda_step_mixedocr.xml | 0 4 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/develop-build.yml create mode 100644 .github/workflows/release-build.yml rename plugin_intranda_step_mixedocr.xml => install/plugin_intranda_step_mixedocr.xml (100%) diff --git a/.github/workflows/develop-build.yml b/.github/workflows/develop-build.yml new file mode 100644 index 0000000..43a0c52 --- /dev/null +++ b/.github/workflows/develop-build.yml @@ -0,0 +1,48 @@ +name: Publish Development Build + +permissions: + contents: write + +on: + push: + branches: + - 'develop' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" + - name: Create tag name from date + id: tagdate + run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: ${{ steps.date.outputs.date }} + tag_name: ${{ steps.tagdate.outputs.tagdate }} + generate_release_notes: true + draft: false + prerelease: true + files: | + **/target/*.jar + install/* + \ No newline at end of file diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml new file mode 100644 index 0000000..9e8a022 --- /dev/null +++ b/.github/workflows/release-build.yml @@ -0,0 +1,48 @@ +name: Publish Release Build + +permissions: + contents: write + +on: + push: + branches: + - 'master' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" + - name: Create tag name from date + id: tagdate + run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: ${{ steps.date.outputs.date }} + tag_name: ${{ steps.tagdate.outputs.tagdate }} + generate_release_notes: true + draft: false + prerelease: false + files: | + **/target/*.jar + install/* + \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 37bbe3a..4d103f4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,16 +43,33 @@ pipeline { } } - stage('deploy-libs') { + stage('deploy-snapshot-libs') { when { anyOf { - branch 'master' branch 'develop' } } steps { script { if (fileExists('module-lib/pom.xml')) { + sh 'cat pom.xml | grep "SNAPSHOT"' + sh 'mvn -N deploy' + sh 'mvn -f module-lib/pom.xml deploy' + } + } + } + } + + stage('deploy-release-libs') { + when { + anyOf { + branch 'master' + } + } + steps { + script { + if (fileExists('module-lib/pom.xml')) { + sh 'cat pom.xml | grep "SNAPSHOT" || true' sh 'mvn -N deploy' sh 'mvn -f module-lib/pom.xml deploy' } @@ -63,7 +80,7 @@ pipeline { post { always { - junit "**/target/surefire-reports/*.xml" + junit allowEmptyResults: true, testResults: "**/target/surefire-reports/*.xml" step([ $class : 'JacocoPublisher', execPattern : '**/target/jacoco.exec', diff --git a/plugin_intranda_step_mixedocr.xml b/install/plugin_intranda_step_mixedocr.xml similarity index 100% rename from plugin_intranda_step_mixedocr.xml rename to install/plugin_intranda_step_mixedocr.xml From 7e6ea02b6d796ceaf85983757b910f4a2b61c6bc Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Fri, 3 May 2024 10:17:37 +0200 Subject: [PATCH 7/9] ci: update to latest CI scripts --- .github/workflows/develop-build.yml | 67 ++++++++++++++------------- .github/workflows/release-build.yml | 71 ++++++++++++++--------------- Jenkinsfile | 53 +++++++++++++-------- 3 files changed, 100 insertions(+), 91 deletions(-) diff --git a/.github/workflows/develop-build.yml b/.github/workflows/develop-build.yml index 43a0c52..d9c62d8 100644 --- a/.github/workflows/develop-build.yml +++ b/.github/workflows/develop-build.yml @@ -12,37 +12,36 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Check out source code - uses: actions/checkout@v4 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Set up Maven cache - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Build with Maven - run: mvn clean verify -U - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" - - name: Create tag name from date - id: tagdate - run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" - - name: Release - id: create_release - uses: softprops/action-gh-release@v2 - with: - name: ${{ steps.date.outputs.date }} - tag_name: ${{ steps.tagdate.outputs.tagdate }} - generate_release_notes: true - draft: false - prerelease: true - files: | - **/target/*.jar - install/* - \ No newline at end of file + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U -P snapshot-build + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" + - name: Create tag name from date + id: tagdate + run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: ${{ steps.date.outputs.date }} + tag_name: ${{ steps.tagdate.outputs.tagdate }} + generate_release_notes: true + draft: false + prerelease: true + files: | + **/target/*.war + install/* diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 9e8a022..2ff7685 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -1,48 +1,45 @@ -name: Publish Release Build +name: Publish Development Build + +permissions: + contents: write + +name: Publish Development Build permissions: contents: write on: push: - branches: - - 'master' + tags: + - 'v*' jobs: build: runs-on: ubuntu-latest steps: - - name: Check out source code - uses: actions/checkout@v4 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Set up Maven cache - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Build with Maven - run: mvn clean verify -U - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" - - name: Create tag name from date - id: tagdate - run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" - - name: Release - id: create_release - uses: softprops/action-gh-release@v2 - with: - name: ${{ steps.date.outputs.date }} - tag_name: ${{ steps.tagdate.outputs.tagdate }} - generate_release_notes: true - draft: false - prerelease: false - files: | - **/target/*.jar - install/* - \ No newline at end of file + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U -P release-build + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: Release ${{ github.ref_name }} + generate_release_notes: true + draft: false + prerelease: false + files: | + **/target/*.war + install/* diff --git a/Jenkinsfile b/Jenkinsfile index 4d103f4..d2f4b4b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,54 +22,67 @@ pipeline { } } - stage('build') { + stage('build-snapshot') { + when { + not { + anyOf { + branch 'master' + branch 'release_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } + } + } + } steps { - sh 'mvn clean verify -U' - recordIssues enabledForFailure: true, aggregatingResults: true, tools: [java(), javaDoc()] + sh 'mvn clean verify -U -P snapshot-build' } } - - stage('sonarcloud') { + stage('build-release') { when { anyOf { branch 'master' - branch 'sonar_*' + branch 'release_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } } } steps { - withCredentials([string(credentialsId: 'jenkins-sonarcloud', variable: 'TOKEN')]) { - sh 'mvn verify sonar:sonar -Dsonar.token=$TOKEN -U' - } + sh 'mvn clean verify -U -P release-build' } } - - stage('deploy-snapshot-libs') { + stage('sonarcloud') { when { anyOf { - branch 'develop' + branch 'master' + branch 'release_*' + branch 'sonar_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } } } steps { - script { - if (fileExists('module-lib/pom.xml')) { - sh 'cat pom.xml | grep "SNAPSHOT"' - sh 'mvn -N deploy' - sh 'mvn -f module-lib/pom.xml deploy' - } + withCredentials([string(credentialsId: 'jenkins-sonarcloud', variable: 'TOKEN')]) { + sh 'mvn verify sonar:sonar -Dsonar.token=$TOKEN -U' } } } - stage('deploy-release-libs') { + stage('deploy-libs') { when { anyOf { branch 'master' + branch 'develop' } } steps { script { if (fileExists('module-lib/pom.xml')) { - sh 'cat pom.xml | grep "SNAPSHOT" || true' sh 'mvn -N deploy' sh 'mvn -f module-lib/pom.xml deploy' } From 8e44620ba9c014d60cf2cbaab944f66b61c8c88f Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Fri, 3 May 2024 13:17:07 +0200 Subject: [PATCH 8/9] ci: update to latest CI scripts --- .github/workflows/develop-build.yml | 2 +- .github/workflows/release-build.yml | 9 ++------- Jenkinsfile | 23 +++++++++++++++++++++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.github/workflows/develop-build.yml b/.github/workflows/develop-build.yml index d9c62d8..78664d9 100644 --- a/.github/workflows/develop-build.yml +++ b/.github/workflows/develop-build.yml @@ -43,5 +43,5 @@ jobs: draft: false prerelease: true files: | - **/target/*.war + **/target/*.jar install/* diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 2ff7685..e3a9552 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -1,9 +1,4 @@ -name: Publish Development Build - -permissions: - contents: write - -name: Publish Development Build +name: Publish Release Build permissions: contents: write @@ -41,5 +36,5 @@ jobs: draft: false prerelease: false files: | - **/target/*.war + **/target/*.jar install/* diff --git a/Jenkinsfile b/Jenkinsfile index d2f4b4b..13cb478 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,6 @@ pipeline { sh 'git reset --hard HEAD && git clean -fdx' } } - stage('build-snapshot') { when { not { @@ -72,7 +71,6 @@ pipeline { } } } - stage('deploy-libs') { when { anyOf { @@ -89,6 +87,27 @@ pipeline { } } } + stage('tag release') { + when { branch 'master' } + steps { + withCredentials([gitUsernamePassword(credentialsId: '93f7e7d3-8f74-4744-a785-518fc4d55314', + gitToolName: 'git-tool')]) { + sh '''#!/bin/bash -xe + projectversion=$(mvn org.apache.maven.plugins:maven-help-plugin:3.4.0:evaluate -Dexpression=project.version -q -DforceStdout) + if [ $? != 0 ] + then + exit 1 + elif [[ "${projectversion}" =~ "SNAPSHOT" ]] + then + echo "This is a SNAPSHOT version" + exit 1 + fi + echo "${projectversion}" + git tag -a "v${projectversion}" -m "releasing v${projectversion}" && git push origin v"${projectversion}" + ''' + } + } + } } post { From 7f00d0ee06e827a471b611619c22fd058ef6437a Mon Sep 17 00:00:00 2001 From: Release-Tool Date: Fri, 3 May 2024 15:15:14 +0200 Subject: [PATCH 9/9] Release v24.04.2 --- module-base/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/module-base/pom.xml b/module-base/pom.xml index 362cd98..5b73395 100644 --- a/module-base/pom.xml +++ b/module-base/pom.xml @@ -3,7 +3,7 @@ io.goobi.workflow.plugin plugin-step-mixed-ocr - 24.03-SNAPSHOT + 24.04.2 plugin-step-mixed-ocr-base jar diff --git a/pom.xml b/pom.xml index 0cd3a18..f326e3c 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ io.goobi.workflow workflow-base - 24.03-SNAPSHOT + 24.04.2 io.goobi.workflow.plugin