From 61098b46cbd3c24816c74e72a974e8a490e19e48 Mon Sep 17 00:00:00 2001 From: Klaas Schuijtemaker Date: Mon, 17 Aug 2026 13:19:37 +0200 Subject: [PATCH 1/2] Upgrade Valtimo to 13.41.0 and dual-publish the backend Bump the backend to Valtimo 13.41.0.RELEASE (from 13.37.0.RELEASE) and the frontend to the matching @valtimo/* 13.41.0 packages. Backend and frontend are released under one version number: 2.1.1 -> 2.1.2. Add the S3 leg of the dual publish next to Sonatype, wired up only when -PpublishToS3=true so a plain Sonatype publish needs no AWS credentials. The workflow step is skipped with a warning when the S3 secrets are absent. Align the plugin library's Angular peer dependencies with the workspace (19.x). Add a release-notes entry. --- .github/workflows/publish-backend.yaml | 39 +++++++++++++- backend/plugin/plugin.properties | 2 +- documentation/release-notes.md | 4 ++ frontend/package.json | 74 +++++++++++++------------- frontend/projects/plugin/package.json | 2 +- gradle.properties | 2 +- gradle/publishing.gradle | 20 +++++++ 7 files changed, 102 insertions(+), 41 deletions(-) diff --git a/.github/workflows/publish-backend.yaml b/.github/workflows/publish-backend.yaml index 9325afd..bcca008 100644 --- a/.github/workflows/publish-backend.yaml +++ b/.github/workflows/publish-backend.yaml @@ -79,13 +79,50 @@ jobs: env: CHANGED_DIR: ${{ matrix.value }} + - id: gradleS3TaskAlize + name: Construct Gradle S3 publish task name from matrix variant + run: CHANGED_DIR=${{ matrix.value }}; echo "TASK_NAME=$(echo :$CHANGED_DIR:publishAllPublicationsToS3Repository | sed -e 's/\//:/g')">>${GITHUB_OUTPUT} + env: + CHANGED_DIR: ${{ matrix.value }} + - name: Test run: ./gradlew ${{ steps.gradleTestTaskAlize.outputs.TASK_NAME }} - - name: Publish + - name: Publish to Sonatype (Maven Central) run: ./gradlew ${{ steps.gradleTaskAlize.outputs.TASK_NAME }} env: SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} SONATYPE_USR: ${{ secrets.SONATYPE_USR }} SONATYPE_PSW: ${{ secrets.SONATYPE_PSW }} + + # The AWS credentials are not configured in every fork/environment yet, so the + # second leg of the dual publish is skipped rather than failed when they are absent. + - id: s3Credentials + name: Check whether S3 credentials are available + env: + AWS_ACCESS_KEY_ID: ${{ secrets.VALTIMO_RELEASE_S3_BUCKET_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.VALTIMO_RELEASE_S3_BUCKET_ACCESS_KEY_SECRET }} + run: | + if [[ -n "$AWS_ACCESS_KEY_ID" && -n "$AWS_SECRET_ACCESS_KEY" ]]; then + echo "available=true" >> "${GITHUB_OUTPUT}" + else + echo "available=false" >> "${GITHUB_OUTPUT}" + echo "::warning::S3 credentials (VALTIMO_RELEASE_S3_BUCKET_ACCESS_KEY_ID / _SECRET) are not set — skipping the S3 publish." + fi + + # Second leg of the dual publish: the same artifacts, same coordinates and version, + # pushed to the Valtimo AWS S3 bucket (valtimo-releases, eu-central-1). + - name: Publish to S3 (AWS) + if: steps.s3Credentials.outputs.available == 'true' + run: | + ./gradlew --no-parallel ${{ steps.gradleS3TaskAlize.outputs.TASK_NAME }} \ + -PpublishToS3=true \ + -Ps3Bucket=valtimo-releases \ + -Ps3Region=eu-central-1 + env: + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} + # Gradle's `AwsCredentials` reads these standard AWS env var names. + AWS_ACCESS_KEY_ID: ${{ secrets.VALTIMO_RELEASE_S3_BUCKET_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.VALTIMO_RELEASE_S3_BUCKET_ACCESS_KEY_SECRET }} diff --git a/backend/plugin/plugin.properties b/backend/plugin/plugin.properties index 753b277..213ef0c 100644 --- a/backend/plugin/plugin.properties +++ b/backend/plugin/plugin.properties @@ -1,3 +1,3 @@ pluginGroupId=com.ritense.valtimoplugins pluginArtifactId=publictask -pluginVersion=2.1.1 +pluginVersion=2.1.2 diff --git a/documentation/release-notes.md b/documentation/release-notes.md index d01dc8c..deac23d 100644 --- a/documentation/release-notes.md +++ b/documentation/release-notes.md @@ -2,6 +2,10 @@ Overzicht van wijzigingen per versie van de Publictask-plugin. +## 2.1.2 + +Valtimo bijgewerkt naar versie 13.41.0. + ## 2.1.1 Bugfixes voor de publieke taak-URL diff --git a/frontend/package.json b/frontend/package.json index e4c6357..f3da0ef 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -44,43 +44,43 @@ "@ng-bootstrap/ng-bootstrap": "11.0.1", "@ngx-translate/core": "16.0.4", "@ngx-translate/http-loader": "16.0.1", - "@valtimo/access-control": "13.24.0", - "@valtimo/access-control-management": "13.24.0", - "@valtimo/account": "13.24.0", - "@valtimo/analyse": "13.24.0", - "@valtimo/bootstrap": "13.24.0", - "@valtimo/building-block-management": "13.24.0", - "@valtimo/case": "13.24.0", - "@valtimo/case-management": "13.24.0", - "@valtimo/case-migration": "13.24.0", - "@valtimo/choice-field": "13.24.0", - "@valtimo/components": "13.24.0", - "@valtimo/dashboard": "13.24.0", - "@valtimo/dashboard-management": "13.24.0", - "@valtimo/decision": "13.24.0", - "@valtimo/document": "13.24.0", - "@valtimo/form": "13.24.0", - "@valtimo/form-flow-management": "13.24.0", - "@valtimo/form-management": "13.24.0", - "@valtimo/iko": "13.24.0", - "@valtimo/keycloak": "13.24.0", - "@valtimo/layout": "13.24.0", - "@valtimo/logging": "13.24.0", - "@valtimo/migration": "13.24.0", - "@valtimo/milestone": "13.24.0", - "@valtimo/plugin": "13.24.0", - "@valtimo/plugin-management": "13.24.0", - "@valtimo/process": "13.24.0", - "@valtimo/process-link": "13.24.0", - "@valtimo/process-management": "13.24.0", - "@valtimo/resource": "13.24.0", - "@valtimo/security": "13.24.0", - "@valtimo/shared": "13.24.0", - "@valtimo/sse": "13.24.0", - "@valtimo/swagger": "13.24.0", - "@valtimo/task": "13.24.0", - "@valtimo/task-management": "13.24.0", - "@valtimo/teams": "13.24.0", + "@valtimo/access-control": "13.41.0", + "@valtimo/access-control-management": "13.41.0", + "@valtimo/account": "13.41.0", + "@valtimo/analyse": "13.41.0", + "@valtimo/bootstrap": "13.41.0", + "@valtimo/building-block-management": "13.41.0", + "@valtimo/case": "13.41.0", + "@valtimo/case-management": "13.41.0", + "@valtimo/case-migration": "13.41.0", + "@valtimo/choice-field": "13.41.0", + "@valtimo/components": "13.41.0", + "@valtimo/dashboard": "13.41.0", + "@valtimo/dashboard-management": "13.41.0", + "@valtimo/decision": "13.41.0", + "@valtimo/document": "13.41.0", + "@valtimo/form": "13.41.0", + "@valtimo/form-flow-management": "13.41.0", + "@valtimo/form-management": "13.41.0", + "@valtimo/iko": "13.41.0", + "@valtimo/keycloak": "13.41.0", + "@valtimo/layout": "13.41.0", + "@valtimo/logging": "13.41.0", + "@valtimo/migration": "13.41.0", + "@valtimo/milestone": "13.41.0", + "@valtimo/plugin": "13.41.0", + "@valtimo/plugin-management": "13.41.0", + "@valtimo/process": "13.41.0", + "@valtimo/process-link": "13.41.0", + "@valtimo/process-management": "13.41.0", + "@valtimo/resource": "13.41.0", + "@valtimo/security": "13.41.0", + "@valtimo/shared": "13.41.0", + "@valtimo/sse": "13.41.0", + "@valtimo/swagger": "13.41.0", + "@valtimo/task": "13.41.0", + "@valtimo/task-management": "13.41.0", + "@valtimo/teams": "13.41.0", "@webcomponents/custom-elements": "1.6.0", "ajv": "8.17.1", "angular-split": "19.0.0", diff --git a/frontend/projects/plugin/package.json b/frontend/projects/plugin/package.json index 9a03781..76bf985 100644 --- a/frontend/projects/plugin/package.json +++ b/frontend/projects/plugin/package.json @@ -1,7 +1,7 @@ { "name": "@valtimo-plugins/publictask", "license": "EUPL-1.2", - "version": "2.1.1", + "version": "2.1.2", "peerDependencies": { "@angular/common": "19.2.20", "@angular/core": "19.2.20" diff --git a/gradle.properties b/gradle.properties index bc35750..50f2bbb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ sumXmlWsVersion=4.0.3 nettyResolverDnsNativeMacOsVersion=4.2.0.Final operatonVersion=1.0.3 -valtimoVersion=13.37.0.RELEASE +valtimoVersion=13.41.0.RELEASE diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index 8602c16..ccdbaa5 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -15,6 +15,16 @@ */ def sonatypeCentralStagingDir = "sonatypeCentralStaging" +// The S3 repository is only wired up when -PpublishToS3=true, so a plain Sonatype +// publish never sees it and never needs AWS credentials. +def publishToS3 = project.hasProperty('publishToS3') && project.property('publishToS3') == 'true' +def s3Bucket = project.findProperty('s3Bucket') ?: 'valtimo-releases' +// The region has to be part of the host for AWS: Gradle's S3 transport has no region property +// and its client ignores AWS_REGION, so a bare s3:// URL is signed for us-east-1 and +// rejected by buckets elsewhere. Leave s3Region empty for a non-AWS S3-compatible store, which +// is addressed with -Dorg.gradle.s3.endpoint at invocation time instead. +def s3Region = project.findProperty('s3Region') ?: '' +def s3Host = s3Region ? "${s3Bucket}.s3.${s3Region}.amazonaws.com" : s3Bucket def signingConfigSet = false if (System.getenv('SIGNING_KEY') && System.getenv('SIGNING_KEY_PASSWORD') @@ -39,6 +49,16 @@ publishing { name "Sonatype" url = sonatypeCentralStagingDir } + if (publishToS3) { + maven { + name "S3" + credentials(AwsCredentials) { + accessKey System.getenv('AWS_ACCESS_KEY_ID') + secretKey System.getenv('AWS_SECRET_ACCESS_KEY') + } + url = uri("s3://${s3Host}") + } + } } publications { maven(MavenPublication) { From 78f90cbd08a824351c66e18eec2d25fab53a3894 Mon Sep 17 00:00:00 2001 From: Klaas Schuijtemaker Date: Mon, 17 Aug 2026 13:44:18 +0200 Subject: [PATCH 2/2] Resolve plugin dependencies from the Valtimo S3 release repository Add the S3 bucket that the backend now dual-publishes to as a dependency repository, so artifacts released there resolve without waiting for the Maven Central sync. --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index f35a011..760302b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -38,6 +38,7 @@ allprojects { mavenCentral() maven { url = uri("https://s01.oss.sonatype.org/content/repositories/releases/") } maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") } + maven { url = uri("https://valtimo-releases.s3.eu-central-1.amazonaws.com/") } } }