From 5b6f2cfd289b2345339b91f05e827630791e6533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Tue, 16 Jun 2026 13:33:16 +0200 Subject: [PATCH 1/7] feat: create deploy-esb action --- .forgejo/workflows/tag-release.yml | 1 + esb-deploy/README.md | 30 +++++++++++++++ esb-deploy/action.yml | 60 ++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 esb-deploy/README.md create mode 100644 esb-deploy/action.yml diff --git a/.forgejo/workflows/tag-release.yml b/.forgejo/workflows/tag-release.yml index 79c61b0..f17834c 100644 --- a/.forgejo/workflows/tag-release.yml +++ b/.forgejo/workflows/tag-release.yml @@ -18,6 +18,7 @@ on: - aws-configure - cache - checkout + - deploy-esb - download-artifact - helm-deploy - i18n-sync diff --git a/esb-deploy/README.md b/esb-deploy/README.md new file mode 100644 index 0000000..1b761ac --- /dev/null +++ b/esb-deploy/README.md @@ -0,0 +1,30 @@ +# esb-deploy + +Deploy a service to an ESB docker host. + +## Inputs + +| Input | Required | Default | Description | +|-------|----------|---------|-------------| +| `docker-host` | Yes | - | esbdb3.schmalzgroup.net, esbdb4.schmalzgroup.net, esbdb2-stage.schmalzgroup.net| +| `java-version` | Yes | 25 | Same as default of the maven-build action | +| `maven-profile` | No | `test` | Maven profile to activate during deploy | +| `maven-settings` | **Yes** | — | Secret containing the `settings.xml` content used for repository authentication | +| `service-name` | Yes | — | Name of the service to deploy | + +## Usage + +```yaml +- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/esb-deploy@esb-deploy-v1 + with: + service-name: my-service + docker-host: esbdocker2-stage.schmalzgroup.net + java-version: 8 + maven-profile: test + maven-settings: ${{ secrets.MAVEN_SETTINGS }} +``` + +## Notes + +- The compose files are extracted from variables. They can be provided on the organization or repository level. +- The action uses the maven-build action to build the service. The pom.xml has to be in the root directory diff --git a/esb-deploy/action.yml b/esb-deploy/action.yml new file mode 100644 index 0000000..96a6593 --- /dev/null +++ b/esb-deploy/action.yml @@ -0,0 +1,60 @@ +name: Deploy ESB +description: Deploy a service to an ESB docker host. + +inputs: + docker-host: + description: Docker host to deploy to + required: true + maven-profile: + required: false + default: 'test' + description: 'Maven profile to use for the build' + maven-settings: + description: Secret containing the settings.xml content used for repository authentication + required: true + java-version: + description: Java version to use for the build + required: true + service: + description: Name of the service to deploy + required: false + default: 'true' + +runs: + using: composite + steps: + - name: Create compose files + shell: bash + env: + BASE_COMPOSE: ${{ vars.DOCKER_COMPOSE }} + SU_COMPOSE: ${{ vars.DOCKER_COMPOSE_SU }} + run: | + printf '%s\n' "$BASE_COMPOSE" > compose.yml + printf '%s\n' "$SU_COMPOSE" > compose-su.yml + + - uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/maven-build@maven-build-v1 + with: + phase: verify + maven-settings: ${{ inputs.maven-settings }} + verify-goals: clean package + java-version: ${{ inputs.java-version }} + + - name: Compose stage + if: ${{ inputs.stage == 'true' }} + shell: bash + env: + SERVICE: ${{ inputs.service }} + run: | + echo "Deploying $SERVICE to stage environment" + export DOCKER_HOST="tcp://${{ inputs.docker-host }}:2375" + docker compose -f compose.yml -f compose-su.yml up -d --build --no-deps "$SERVICE" + + - name: Compose prod + if: ${{ inputs.stage != 'true' }} + shell: bash + env: + SERVICE: ${{ inputs.service }} + run: | + echo "Deploying $SERVICE to production environment" + export DOCKER_HOST="tcp://${{ inputs.docker-host }}:2375" + docker compose -f compose.yml up -d --build --no-deps "$SERVICE" From 4e15383d233328604bbd4c37d9dc737d9784e165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Tue, 16 Jun 2026 16:25:43 +0200 Subject: [PATCH 2/7] fix: use correct name in tag-release workflow --- .forgejo/workflows/tag-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/tag-release.yml b/.forgejo/workflows/tag-release.yml index f17834c..428ec72 100644 --- a/.forgejo/workflows/tag-release.yml +++ b/.forgejo/workflows/tag-release.yml @@ -18,8 +18,8 @@ on: - aws-configure - cache - checkout - - deploy-esb - download-artifact + - esb-deploy - helm-deploy - i18n-sync - inject-content From 115300a7e1614eaee4fc5d40ac7baf6e151ce73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Tue, 16 Jun 2026 16:32:34 +0200 Subject: [PATCH 3/7] fix: readme mentioned wrong parameters --- esb-deploy/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esb-deploy/README.md b/esb-deploy/README.md index 1b761ac..51eae81 100644 --- a/esb-deploy/README.md +++ b/esb-deploy/README.md @@ -10,14 +10,14 @@ Deploy a service to an ESB docker host. | `java-version` | Yes | 25 | Same as default of the maven-build action | | `maven-profile` | No | `test` | Maven profile to activate during deploy | | `maven-settings` | **Yes** | — | Secret containing the `settings.xml` content used for repository authentication | -| `service-name` | Yes | — | Name of the service to deploy | +| `service` | Yes | — | Name of the service to deploy | ## Usage ```yaml - uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/esb-deploy@esb-deploy-v1 with: - service-name: my-service + service: my-service docker-host: esbdocker2-stage.schmalzgroup.net java-version: 8 maven-profile: test From 0134da8ac7cab452a944bfd3abe25487739952cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Wed, 17 Jun 2026 07:42:35 +0200 Subject: [PATCH 4/7] fix: propagate maven profile in esb-deploy action --- esb-deploy/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/esb-deploy/action.yml b/esb-deploy/action.yml index 96a6593..c8fd97f 100644 --- a/esb-deploy/action.yml +++ b/esb-deploy/action.yml @@ -38,6 +38,7 @@ runs: maven-settings: ${{ inputs.maven-settings }} verify-goals: clean package java-version: ${{ inputs.java-version }} + maven-profile: ${{ inputs.maven-profile}} - name: Compose stage if: ${{ inputs.stage == 'true' }} From 91494155758370e2731738b33ed27543e9113989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Wed, 17 Jun 2026 08:01:38 +0200 Subject: [PATCH 5/7] fix: action did not provide stage toggle --- esb-deploy/README.md | 2 ++ esb-deploy/action.yml | 3 +++ 2 files changed, 5 insertions(+) diff --git a/esb-deploy/README.md b/esb-deploy/README.md index 51eae81..ae02466 100644 --- a/esb-deploy/README.md +++ b/esb-deploy/README.md @@ -11,6 +11,7 @@ Deploy a service to an ESB docker host. | `maven-profile` | No | `test` | Maven profile to activate during deploy | | `maven-settings` | **Yes** | — | Secret containing the `settings.xml` content used for repository authentication | | `service` | Yes | — | Name of the service to deploy | +| `stage` | No | true | If true this is a stage deployment | ## Usage @@ -22,6 +23,7 @@ Deploy a service to an ESB docker host. java-version: 8 maven-profile: test maven-settings: ${{ secrets.MAVEN_SETTINGS }} + stage: true ``` ## Notes diff --git a/esb-deploy/action.yml b/esb-deploy/action.yml index c8fd97f..584274e 100644 --- a/esb-deploy/action.yml +++ b/esb-deploy/action.yml @@ -17,6 +17,9 @@ inputs: required: true service: description: Name of the service to deploy + required: true + stage: + description: Whether to deploy to stage environment (true) or production environment (false) required: false default: 'true' From a49611f28806801b87e0d31dd13ab949b5fae7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Wed, 17 Jun 2026 08:52:37 +0200 Subject: [PATCH 6/7] fix: maven action did not set profile in verify mode --- maven-build/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/maven-build/action.yml b/maven-build/action.yml index 961bc28..1c9b161 100644 --- a/maven-build/action.yml +++ b/maven-build/action.yml @@ -97,6 +97,7 @@ runs: run: | mvn --batch-mode $VERIFY_GOALS \ -s /tmp/maven-settings.xml \ + -P "$MAVEN_PROFILE" \ $EXTRA_ARGS - name: Deploy From 9783972537edc63ff438168f5c4348148512b4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6hringer?= Date: Wed, 17 Jun 2026 09:41:57 +0200 Subject: [PATCH 7/7] fix: actually provide maven profile --- maven-build/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/maven-build/action.yml b/maven-build/action.yml index 1c9b161..6b16ded 100644 --- a/maven-build/action.yml +++ b/maven-build/action.yml @@ -94,6 +94,7 @@ runs: env: VERIFY_GOALS: ${{ inputs.verify-goals }} EXTRA_ARGS: ${{ inputs.extra-args }} + MAVEN_PROFILE: ${{ inputs.maven-profile }} run: | mvn --batch-mode $VERIFY_GOALS \ -s /tmp/maven-settings.xml \