From 644b1e9fe0d8f00988e55ed771a6d0083476b37c Mon Sep 17 00:00:00 2001 From: Klaas Schuijtemaker Date: Mon, 17 Aug 2026 13:17:21 +0200 Subject: [PATCH] Upgrade Valtimo to 13.41.0 and dual-publish the backend Bump the backend to Valtimo 13.41.0.RELEASE (from 13.24.0.RELEASE) and the frontend to the matching @valtimo/* 13.41.0 packages. Backend and frontend are released under one version number: 0.1.0 -> 0.1.1. 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 31ffcc0..df8862a 100644 --- a/backend/plugin/plugin.properties +++ b/backend/plugin/plugin.properties @@ -15,4 +15,4 @@ # pluginGroupId=com.ritense.valtimoplugins pluginArtifactId=cloud-event -pluginVersion=0.1.0 +pluginVersion=0.1.1 diff --git a/documentation/release-notes.md b/documentation/release-notes.md index ff68e5c..51947c6 100644 --- a/documentation/release-notes.md +++ b/documentation/release-notes.md @@ -2,5 +2,9 @@ Overzicht van wijzigingen per versie van de Cloud Event-plugin. +## 0.1.1 + +Valtimo bijgewerkt naar versie 13.41.0. + ## 0.1.0 Eerste release: CloudEvents versturen en ontvangen via RabbitMQ. Ondergebracht in een eigen repository met voorbeeldapplicatie en aparte documentatie. diff --git a/frontend/package.json b/frontend/package.json index 959a57f..fc28961 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 425c676..1573414 100644 --- a/frontend/projects/plugin/package.json +++ b/frontend/projects/plugin/package.json @@ -1,7 +1,7 @@ { "name": "@valtimo-plugins/cloud-event", "license": "EUPL-1.2", - "version": "0.1.0", + "version": "0.1.1", "peerDependencies": { "@angular/common": "^19.2.8", "@angular/core": "^19.2.8" diff --git a/gradle.properties b/gradle.properties index 3ac7b92..a2eddd8 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.24.0.RELEASE +valtimoVersion=13.41.0.RELEASE diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index dc97ca3..c6a27dd 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) {