-
Notifications
You must be signed in to change notification settings - Fork 18
151 lines (130 loc) · 7.28 KB
/
java_client_compatibility.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Test Java client against the released IMDG servers
on:
workflow_dispatch:
inputs:
organization_name:
description: Default is hazelcast, but if you would like to run the workflow with your forked repo, set your github username
required: true
default: hazelcast
branch_name:
description: Name of the branch to test client from
required: true
default: master
jobs:
setup_server_matrix:
name: Setup the server test matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Checkout to scripts
uses: actions/checkout@v4
- name: Set server matrix
id: set-matrix
run: echo "matrix=$( python get_server_matrix.py )" >> "$GITHUB_OUTPUT"
test_client:
needs: [setup_server_matrix]
runs-on: ubicloud-standard-8
timeout-minutes: 720 # 12 hours
strategy:
fail-fast: false
matrix:
server_version: ${{ fromJson(needs.setup_server_matrix.outputs.matrix) }}
server_kind: [ enterprise ]
tests_type: [ os, enterprise ]
name: Test Java client ${{ github.event.inputs.branch_name }} branch running ${{ matrix.tests_type }} tests against ${{ matrix.server_kind }} ${{ matrix.server_version }} server
steps:
- name: Checkout to scripts
uses: actions/checkout@v4
- name: Read Java Config
run: cat ${{ github.workspace }}/.github/java-config.env >> $GITHUB_ENV
- name: Setup Server Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Set Server JDK home
run: echo "SERVER_JAVA=$JAVA_HOME" >> $GITHUB_ENV
- name: Setup JDK8
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "8"
- name: Checkout to ${{ github.event.inputs.branch_name }}
uses: actions/checkout@v4
with:
repository: ${{ github.event.inputs.organization_name }}/hazelcast-java-client
token: ${{ secrets.GH_PAT }}
path: client
ref: ${{ github.event.inputs.branch_name }}
- name: Setup Local Maven Cache
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Check Server Version to Determine License Version
uses: madhead/semver-utils@latest
id: version
with:
version: ${{ matrix.server_version }}
compare-to: 5.3.0
- name: Set up HZ_LICENSEKEY env
if: ${{ matrix.server_kind == 'enterprise' }}
run: |
echo "HZ_LICENSEKEY=${{ '>' == steps.version.outputs.comparison-result && secrets.HAZELCAST_ENTERPRISE_KEY || secrets.HAZELCAST_ENTERPRISE_KEY_V5 }}" >> $GITHUB_ENV
- name: Build modules
shell: bash -l {0}
run: |
chmod +x mvnw
JAVA_HOME=${{env.JAVA_HOME}} ./mvnw -B -V -e clean install -DskipTests -Dtest.hazelcast-server.version=${{ matrix.server_version }}
working-directory: client
- name: Run remote controller for non-enterprise tests
if: ${{ matrix.tests_type == 'os' }}
working-directory: client/hazelcast-java-client/target/test-artifacts
run: |
${{env.SERVER_JAVA}}/bin/java -cp additional-libs/*:hazelcast-remote-controller.jar:hazelcast.jar:test-artifacts.jar:../test-classes/jars/testsubjects.jar:../test-classes/jars/test.jar: -Djava.security.krb5.conf=../../src/test/resources/krb5.conf -Dhazelcast.phone.home.enabled=false -Dhazelcast.logging.details.enabled=true --add-opens=java.base/java.lang=ALL-UNNAMED com.hazelcast.remotecontroller.Main --use-simple-server 2> server_log.txt &
- name: Run non-enterprise tests
if: ${{ matrix.tests_type == 'os' }}
shell: bash -l {0}
run: |
chmod +x mvnw
JAVA_HOME=${{env.JAVA_HOME}} ./mvnw -B -V -e test -Pintegration-tests -Dtest.hazelcast-server.version=${{ matrix.server_version }}
working-directory: client/hazelcast-java-client
- name: Copy vector libs
if: ${{ matrix.server_kind == 'enterprise' && matrix.tests_type == 'enterprise' }}
run: |
cp client/hazelcast-enterprise-java-client-vector/target/test-artifacts/os-test-vector-artifacts.jar client/hazelcast-enterprise-java-client/target/test-artifacts/os-test-vector-artifacts.jar
cp client/hazelcast-enterprise-java-client-vector/target/test-artifacts/test-vector-artifacts.jar client/hazelcast-enterprise-java-client/target/test-artifacts/test-vector-artifacts.jar
- name: Run remote controller for enterprise tests
if: ${{ matrix.server_kind == 'enterprise' && matrix.tests_type == 'enterprise' }}
working-directory: client/hazelcast-enterprise-java-client/target/test-artifacts
run: |
${{env.SERVER_JAVA}}/bin/java -cp additional-libs/*:hazelcast-remote-controller.jar:../test-artifacts:hazelcast-enterprise.jar:hazelcast.jar:test-artifacts.jar:os-test-artifacts.jar:test-vector-artifacts.jar:test-os-vector-artifacts.jar:../test-classes/jars/testsubjects.jar:../test-classes/jars/test.jar: -Djava.security.krb5.conf=../../src/test/resources/krb5.conf -Dhazelcast.logging.details.enabled=true -Dhazelcast.hidensity.check.freememory=false --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-exports jdk.management/com.ibm.lang.management.internal=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED com.hazelcast.remotecontroller.Main --use-simple-server 2> server_log.txt &
- name: Run enterprise Vector tests
if: ${{ matrix.server_kind == 'enterprise' && matrix.tests_type == 'enterprise' }}
shell: bash -l {0}
run: |
chmod +x mvnw
JAVA_HOME=${{env.JAVA_HOME}} ./mvnw -B -V -e test -Pintegration-tests -Dtest.hazelcast-server.version=${{ matrix.server_version }}
working-directory: client/hazelcast-enterprise-java-client-vector
- name: Run enterprise tests
if: ${{ matrix.server_kind == 'enterprise' && matrix.tests_type == 'enterprise' }}
shell: bash -l {0}
run: |
chmod +x mvnw
JAVA_HOME=${{env.JAVA_HOME}} ./mvnw -B -V -e test -Pintegration-tests -Dtest.hazelcast-server.version=${{ matrix.server_version }}
working-directory: client/hazelcast-enterprise-java-client
- name: Archive server logs
uses: actions/upload-artifact@v4
if: always()
with:
name: server-${{ matrix.server_version }}-${{ matrix.server_kind }}-logs-${{ matrix.tests_type }}-tests
path: |
client/hazelcast-java-client/target/test-artifacts/server_log.txt
client/hazelcast-enterprise-java-client/target/test-artifacts/server_log.txt