convert JMX metrics to appropriate type #293 (#300) #234
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build-maven: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
java: [ '8','11','17','19'] | |
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] | |
fail-fast: false | |
steps: | |
- name: Install wine+rpm for distribution | |
if: runner.os == 'Linux' | |
shell: bash | |
run: | | |
sudo apt-get install ppa-purge && sudo ppa-purge -y ppa:ubuntu-toolchain-r/test | |
sudo dpkg --add-architecture i386 | |
sudo mkdir -pm755 /etc/apt/keyrings && sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key | |
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources | |
sudo apt-get update | |
sudo apt install --install-recommends winehq-stable | |
sudo mkdir -p /opt/wine/mono && sudo wget "https://dl.winehq.org/wine/wine-mono/8.0.0/wine-mono-8.0.0-x86.tar.xz" -P /opt/wine/mono && sudo tar -xf /opt/wine/mono/wine-mono-8.0.0-x86.tar.xz -C /opt/wine/mono && sudo rm /opt/wine/mono/wine-mono-8.0.0-x86.tar.xz | |
wine --version | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Java ${{ matrix.Java }} (${{ matrix.os }}) | |
uses: actions/setup-java@v3 | |
with: | |
java-version: ${{ matrix.java }} | |
distribution: 'temurin' | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2-repository | |
- name: Set Integration Test Environment | |
id: maven-profile-flag | |
if: runner.os != 'Windows' | |
run: | | |
echo "MAVEN_PROFILE_FLAG=-P precommit" >> $GITHUB_OUTPUT | |
- name: Build with Maven | |
env: | |
MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 | |
run: mvn --batch-mode --errors --update-snapshots verify --file pom.xml ${{ steps.maven-profile-flag.outputs.MAVEN_PROFILE_FLAG }} | |
- name: Test on Unix | |
if: runner.os != 'Windows' | |
run: | | |
export OPENDJ_JAVA_ARGS="-server -Xmx1g" | |
opendj-server-legacy/target/package/opendj/setup -h localhost -p 1389 --ldapsPort 1636 --adminConnectorPort 4444 --enableStartTLS --generateSelfSignedCertificate --rootUserDN "cn=Directory Manager" --rootUserPassword password --baseDN dc=example,dc=com --sampleData 50000 --cli --acceptLicense --no-prompt | |
opendj-server-legacy/target/package/opendj/bin/status --bindDN "cn=Directory Manager" --bindPassword password | |
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1 | |
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "ou=people,dc=example,dc=com" --searchScope sub "(uid=user.*)" dn | grep ^dn: | wc -l | grep -q 50000 | |
- name: Test on Windows | |
if: runner.os == 'Windows' | |
run: | | |
set OPENDJ_JAVA_ARGS="-server -Xmx1g" | |
opendj-server-legacy\target\package\opendj\setup.bat -h localhost -p 1389 --ldapsPort 1636 --adminConnectorPort 4444 --enableStartTLS --generateSelfSignedCertificate --rootUserDN "cn=Directory Manager" --rootUserPassword password --baseDN dc=example,dc=com --sampleData 50000 --cli --acceptLicense --no-prompt | |
opendj-server-legacy\target\package\opendj\bat\status.bat --bindDN "cn=Directory Manager" --bindPassword password | |
opendj-server-legacy\target\package\opendj\bat\ldapsearch.bat --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1 | |
opendj-server-legacy\target\package\opendj\bat\ldapsearch.bat --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope sub "(uid=user.*)" dn | find /c '"dn:"' | findstr "50000" | |
- name: Upload artifacts OpenDJ Server | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.os }}-${{ matrix.java }} | |
retention-days: 5 | |
path: | | |
opendj-server-legacy/target/package/*.zip | |
opendj-ldap-toolkit/target/*.zip | |
opendj-packages/opendj-deb/opendj-deb-standard/target/*.deb | |
opendj-packages/opendj-rpm/opendj-rpm-standard/target/rpm/opendj/RPMS/noarch/*.rpm | |
opendj-packages/opendj-msi/opendj-msi-standard/target/*.msi | |
opendj-packages/opendj-docker/target/Dockerfile.zip | |
opendj-packages/opendj-openshift-template/*.yaml | |
opendj-doc-generated-ref/target/*.zip | |
opendj-dsml-servlet/target/*.war | |
opendj-rest2ldap-servlet/target/*.war | |
build-docker: | |
runs-on: 'ubuntu-latest' | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Get latest release version | |
shell: bash | |
run: | | |
git fetch -t; export git_version_last="$(git describe --abbrev=0 --tags)" ; echo "last release: $git_version_last" | |
echo "release_version=$git_version_last" >> $GITHUB_ENV | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
localhost:5000/${{ github.repository }} | |
tags: | | |
type=raw,value=${{ env.release_version }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- name: Build image (default) | |
uses: docker/build-push-action@v3 | |
continue-on-error: true | |
with: | |
context: ./opendj-packages/opendj-docker | |
file: ./opendj-packages/opendj-docker/Dockerfile | |
build-args: | | |
VERSION=${{ env.release_version }} | |
platforms: linux/amd64, linux/arm64/8, linux/arm/v7, linux/ppc64le, linux/s390x | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Docker test | |
shell: bash | |
run: | | |
docker run --rm -it -d --name=test localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} | |
timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test | grep -q \"healthy\"; do sleep 10; done' | |
build-docker-alpine: | |
runs-on: 'ubuntu-latest' | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Get latest release version | |
shell: bash | |
run: | | |
git fetch -t; export git_version_last="$(git describe --abbrev=0 --tags)" ; echo "last release: $git_version_last" | |
echo "release_version=$git_version_last" >> $GITHUB_ENV | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
localhost:5000/${{ github.repository }} | |
tags: | | |
type=raw,value=alpine | |
type=raw,value=${{ env.release_version }}-alpine | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- name: Build image | |
continue-on-error: true | |
uses: docker/build-push-action@v3 | |
with: | |
context: ./opendj-packages/opendj-docker | |
file: ./opendj-packages/opendj-docker/Dockerfile-alpine | |
build-args: | | |
VERSION=${{ env.release_version }} | |
platforms: linux/amd64,linux/arm64/8, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6, linux/ppc64le | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Docker test | |
shell: bash | |
run: | | |
docker run --rm -it -d --name=test localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }}-alpine | |
timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test | grep -q \"healthy\"; do sleep 10; done' |