From f9e1f82cf2c04816da06ed3a766abf57487c22cb Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Mon, 06 Jul 2026 06:52:41 +0000
Subject: [PATCH] Modernizes the OpenDJ Docker images and broadens their multi-architecture build matrix. (#655)
---
.github/workflows/build.yml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6932ab1..2503bd4 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -315,6 +315,9 @@
ports:
- 5000:5000
steps:
+ - uses: actions/checkout@v6
+ with:
+ sparse-checkout: .github/benchmark
- name: Download artifacts
uses: actions/download-artifact@v8
with:
@@ -351,7 +354,7 @@
file: ./opendj-packages/opendj-docker/Dockerfile
build-args: |
VERSION=${{ env.release_version }}
- platforms: linux/amd64, linux/arm64/8, linux/ppc64le, linux/s390x #, linux/arm/v7
+ platforms: linux/amd64, linux/arm64/8, linux/ppc64le, linux/s390x, linux/riscv64 #, linux/arm/v7
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
@@ -376,6 +379,30 @@
timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test_custom | grep -q \"healthy\"; do sleep 10; done'
docker exec test_custom 'sh' '-c' '/opt/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword custom_password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1'
docker kill test_custom
+ - name: Cache JMeter
+ uses: actions/cache@v5
+ with:
+ path: ~/jmeter
+ key: jmeter-5.6.3
+ - name: Benchmark Build vs Release
+ shell: bash
+ run: |
+ THREADS=200 DURATION=150 bash .github/benchmark/compare-opendj.sh \
+ "Build" localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} \
+ "Release" openidentityplatform/opendj:latest
+ - name: Upload benchmark artifacts
+ if: always()
+ uses: actions/upload-artifact@v7
+ with:
+ name: benchmark-build-vs-release
+ path: |
+ a/
+ b/
+ *.jtl
+ *.docker.log
+ *.jmeter.out
+ if-no-files-found: warn
+ retention-days: 3
build-docker-alpine:
needs: build-maven
@@ -386,6 +413,9 @@
ports:
- 5000:5000
steps:
+ - uses: actions/checkout@v6
+ with:
+ sparse-checkout: .github/benchmark
- name: Download artifacts
uses: actions/download-artifact@v8
with:
@@ -423,7 +453,7 @@
file: ./opendj-packages/opendj-docker/Dockerfile-alpine
build-args: |
VERSION=${{ env.release_version }}
- platforms: linux/amd64, linux/arm64/8, linux/s390x, linux/ppc64le
+ platforms: linux/amd64, linux/arm64/8, linux/s390x, linux/ppc64le, linux/386, linux/riscv64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
@@ -448,3 +478,27 @@
timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test_custom | grep -q \"healthy\"; do sleep 10; done'
docker exec test_custom 'sh' '-c' '/opt/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword custom_password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1'
docker kill test_custom
+ - name: Cache JMeter
+ uses: actions/cache@v5
+ with:
+ path: ~/jmeter
+ key: jmeter-5.6.3
+ - name: Benchmark Build-alpine vs Release-alpine
+ shell: bash
+ run: |
+ THREADS=200 DURATION=150 bash .github/benchmark/compare-opendj.sh \
+ "Build-alpine" localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }}-alpine \
+ "Release-alpine" openidentityplatform/opendj:alpine
+ - name: Upload benchmark artifacts
+ if: always()
+ uses: actions/upload-artifact@v7
+ with:
+ name: benchmark-build-vs-release-alpine
+ path: |
+ a/
+ b/
+ *.jtl
+ *.docker.log
+ *.jmeter.out
+ if-no-files-found: warn
+ retention-days: 90
--
Gitblit v1.10.0