Test Server Backwards Compatibility #102
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: Test Server Backwards Compatibility | |
on: | |
workflow_dispatch: | |
inputs: | |
organization_name: | |
description: Name of the organization to build JARs from. If you want to run the tests with the JARs from your fork, set this to your username. | |
required: true | |
default: hazelcast | |
branch_name: | |
description: Name of the branch to build JARs from | |
required: true | |
default: master | |
hz_version: | |
description: Version of the JARs that will be built, without the SNAPSHOT suffix. | |
required: true | |
default: "5.0" | |
run_python: | |
description: Whether or not to run Python client tests. Set to something else to not run the tests. | |
required: true | |
default: run | |
run_nodejs: | |
description: Whether or not to run Node.js client tests. Set to something else to not run the tests. | |
required: true | |
default: run | |
run_cpp: | |
description: Whether or not to run CPP client tests. Set to something else to not run the tests. | |
required: true | |
default: run | |
run_csharp: | |
description: Whether or not to run Csharp client tests. Set to something else to not run the tests. | |
required: true | |
default: run | |
run_go: | |
description: Whether or not to run Go client tests. Set to something else to not run the tests. | |
required: true | |
default: run | |
jobs: | |
upload_jars: | |
name: Create and upload JARs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout to scripts | |
uses: actions/checkout@v4 | |
with: | |
path: master | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/master/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Checkout to test artifacts | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/private-test-artifacts | |
path: certs | |
ref: data | |
token: ${{ secrets.GH_PAT }} | |
- name: Checkout to Hazelcast Mono | |
uses: actions/checkout@v2 | |
with: | |
repository: ${{ github.event.inputs.organization_name }}/hazelcast-mono | |
path: hazelcast-mono | |
ref: ${{ github.event.inputs.branch_name }} | |
token: ${{ secrets.GH_PAT }} | |
- name: Build JARs | |
run: mvn clean install -DskipTests=True | |
working-directory: hazelcast-mono | |
- name: Upload Hazelcast JAR | |
uses: actions/upload-artifact@v2 | |
with: | |
name: hazelcast | |
path: hazelcast-mono/hazelcast/hazelcast/target/hazelcast-*[!s].jar | |
retention-days: 1 | |
- name: Upload Hazelcast SQL JAR (if exists) | |
uses: actions/upload-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: hazelcast-mono/hazelcast/hazelcast-sql/target/hazelcast-sql-*[!s].jar | |
if-no-files-found: ignore | |
retention-days: 1 | |
- name: Upload Hazelcast tests JAR | |
uses: actions/upload-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: hazelcast-mono/hazelcast/hazelcast/target/hazelcast-*-tests.jar | |
retention-days: 1 | |
- name: Upload Hazelcast Enterprise JAR | |
uses: actions/upload-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: hazelcast-mono/hazelcast-enterprise/target/hazelcast-enterprise-*[!s].jar | |
retention-days: 1 | |
- name: Rename certs.jar as Hazelcast Enterprise tests JAR | |
run: | | |
HZ_TESTS_JAR_NAME=$(basename $(ls $GITHUB_WORKSPACE/hazelcast-mono/hazelcast/hazelcast/target/hazelcast-*-tests.jar)) | |
HZ_ENTERPRISE_TESTS_JAR_NAME=$(echo $HZ_TESTS_JAR_NAME | sed "s/hazelcast/hazelcast-enterprise/") | |
mv certs.jar $HZ_ENTERPRISE_TESTS_JAR_NAME | |
working-directory: certs | |
- name: Upload certificates as Hazelcast Enterprise tests JAR | |
uses: actions/upload-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: certs/hazelcast-enterprise-*-tests.jar | |
retention-days: 1 | |
setup_python_client_matrix: | |
name: Setup the Python client test matrix | |
if: ${{ github.event.inputs.run_python == 'run' }} | |
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@v2 | |
- name: Set client matrix | |
id: set-matrix | |
run: echo "::set-output name=matrix::$( python get_client_matrix.py --client py --option tag --use-latest-patch-versions )" | |
test_python_clients: | |
needs: [ upload_jars, setup_python_client_matrix ] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
client_tag: ${{ fromJson(needs.setup_python_client_matrix.outputs.matrix) }} | |
server_kind: [ os, enterprise ] | |
name: Test Python client ${{ matrix.client_tag }} with ${{ matrix.server_kind }} server | |
steps: | |
- name: Checkout to scripts | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Checkout to master | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-python-client | |
path: master | |
ref: master | |
- name: Checkout to tag | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-python-client | |
path: tag | |
ref: ${{ matrix.client_tag }} | |
- name: Copy the client code into master | |
run: | | |
rm -rf $GITHUB_WORKSPACE/master/hazelcast | |
cp -a $GITHUB_WORKSPACE/tag/hazelcast $GITHUB_WORKSPACE/master/hazelcast | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements-test.txt | |
working-directory: master | |
- name: Download Hazelcast tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: jars | |
- name: Download Hazelcast SQL JAR (if exists) | |
continue-on-error: true | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: jars | |
- name: Download Hazelcast JAR | |
if: ${{ matrix.server_kind == 'os' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast | |
path: jars | |
- name: Download Hazelcast Enterprise JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: jars | |
- name: Download Hazelcast Enterprise tests JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: jars | |
- name: Start RC | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
run: python start_rc.py --rc-version '0.8-SNAPSHOT' --jars jars --server-kind ${{ matrix.server_kind }} --use-simple-server | |
- name: Run non-enterprise tests | |
if: ${{ matrix.server_kind == 'os' }} | |
run: pytest -m 'not enterprise' tests/integration/backward_compatible | |
working-directory: master | |
- name: Run all tests | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
run: pytest tests/integration/backward_compatible | |
working-directory: master | |
setup_nodejs_client_matrix: | |
name: Setup the Node.js client test matrix | |
if: ${{ github.event.inputs.run_nodejs == 'run' }} | |
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@v2 | |
- name: Set client matrix | |
id: set-matrix | |
run: echo "::set-output name=matrix::$( python get_client_matrix.py --client node --option tag --use-latest-patch-versions )" | |
test_nodejs_clients: | |
needs: [ upload_jars, setup_nodejs_client_matrix ] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
client_tag: ${{ fromJson(needs.setup_nodejs_client_matrix.outputs.matrix) }} | |
server_kind: [ os, enterprise ] | |
name: Test Node.js client ${{ matrix.client_tag }} with ${{ matrix.server_kind }} server | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 14 | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Checkout to master | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-nodejs-client | |
path: master | |
ref: master | |
- name: Checkout to tag | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-nodejs-client | |
path: tag | |
ref: ${{ matrix.client_tag }} | |
- name: Install dependencies and compile client | |
run: | | |
npm install | |
npm run compile | |
working-directory: tag | |
- name: Install test dependencies | |
run: | | |
npm install | |
working-directory: master | |
- name: Copy client code into master | |
run: | | |
rm -rf $GITHUB_WORKSPACE/master/lib | |
rm $GITHUB_WORKSPACE/master/package.json | |
cp -a $GITHUB_WORKSPACE/tag/lib $GITHUB_WORKSPACE/master/lib | |
cp -a $GITHUB_WORKSPACE/tag/package.json $GITHUB_WORKSPACE/master/package.json | |
- name: Download Hazelcast tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: jars | |
- name: Download Hazelcast SQL JAR (if exists) | |
continue-on-error: true | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: jars | |
- name: Download Hazelcast JAR | |
if: ${{ matrix.server_kind == 'os' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast | |
path: jars | |
- name: Download Hazelcast Enterprise JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: jars | |
- name: Download Hazelcast Enterprise tests JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: jars | |
- name: Start RC | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
run: python start_rc.py --rc-version '0.8-SNAPSHOT' --jars jars --server-kind ${{ matrix.server_kind }} | |
- name: Run non-enterprise tests | |
if: ${{ matrix.server_kind == 'os' }} | |
run: node node_modules/mocha/bin/mocha --recursive test/integration/backward_compatible | |
working-directory: master | |
- name: Run all tests | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
run: node node_modules/mocha/bin/mocha --recursive test/integration/backward_compatible | |
working-directory: master | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
setup_csharp_client_matrix: | |
name: Setup the Csharp client test matrix | |
if: ${{ github.event.inputs.run_csharp == 'run' }} | |
runs-on: windows-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@v2 | |
- name: Set client matrix | |
id: set-matrix | |
run: echo "::set-output name=matrix::$( python get_client_matrix.py --client cs --option tag --use-latest-patch-versions )" | |
test_csharp_clients: | |
needs: [ upload_jars, setup_csharp_client_matrix ] | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
client_tag: ${{ fromJson(needs.setup_csharp_client_matrix.outputs.matrix) }} | |
server_kind: [ os, enterprise ] | |
name: Test Csharp client ${{ matrix.client_tag }} with ${{ matrix.server_kind }} server | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Install .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: | | |
2.1.x | |
3.1.x | |
5.0.x | |
6.0.x | |
7.0.x | |
- name: Checkout to tag | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-csharp-client | |
path: tag | |
ref: ${{ matrix.client_tag }} | |
- name: Download Hazelcast tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: tag/temp/lib | |
- name: Download Hazelcast SQL JAR (if exists) | |
continue-on-error: true | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: tag/temp/lib | |
- name: Download Hazelcast JAR | |
if: ${{ matrix.server_kind == 'os' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast | |
path: tag/temp/lib | |
- name: Download Hazelcast Enterprise JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: tag/temp/lib | |
- name: Download Hazelcast Enterprise tests JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: tag/temp/lib | |
- name: Update submodules | |
run: | | |
git submodule update --init | |
working-directory: tag | |
- name: Detect Client Version | |
shell: pwsh | |
run: | | |
$client = "${{matrix.client_tag}}".replace("v","") | |
"CLIENT_VERSION=$client" >> $env:GITHUB_ENV | |
- uses: madhead/semver-utils@latest | |
id: version | |
with: | |
version: ${{ env.CLIENT_VERSION }} | |
compare-to: 5.2.x | |
satisfies: x | |
- name: Client Version | |
run: | | |
echo "${{steps.version.outputs.major}}.${{steps.version.outputs.minor }}.${{steps.version.outputs.patch }}" | |
- name: Backport SSL Tests and hz script for client < 5.2.0 | |
id: backport-tests | |
if: ${{ ((steps.version.outputs.major == '5' && steps.version.outputs.minor < '2') || ( steps.version.outputs.major == '5' && steps.version.outputs.minor == '2' && steps.version.outputs.patch < '2') || (steps.version.outputs.major == '4')) }} | |
shell: pwsh | |
working-directory: tag | |
run: | | |
cp ${{github.workspace}}\utils\net\hz-latest.ps1 ${{github.workspace}}\tag\hz-latest.ps1 | |
cp ${{github.workspace}}\utils\net\utils.ps1 ${{github.workspace}}\tag\build\utils.ps1 | |
./hz-latest.ps1 copy-files -copy-files-source ${{github.workspace}}\utils\net\ssl | |
- name: Use hz.ps1 with no Java Version Check Script for Client < 5.3.1 | |
id: backport-no-java-check | |
if: ${{ ((steps.version.outputs.major == '5' && steps.version.outputs.minor < '4') || (steps.version.outputs.major == '4')) }} | |
shell: pwsh | |
working-directory: tag | |
run: | | |
cp ${{github.workspace}}\utils\net\no-java-check\hz.ps1 ${{github.workspace}}\tag\hz.ps1 | |
cp ${{github.workspace}}\utils\net\utils.ps1 ${{github.workspace}}\tag\build\utils.ps1 | |
- name: Build | |
shell: pwsh | |
working-directory: tag | |
run: | | |
./hz.ps1 clean, build | |
- name: Build Client 4.0.2 with compatibility | |
if: ${{ steps.version.outputs.major == '4' && steps.version.outputs.minor == '0' }} | |
shell: pwsh | |
working-directory: tag | |
run: | | |
./hz-latest.ps1 clean, build | |
- name: Run non-enterprise tests | |
if: ${{ matrix.server_kind == 'os' && steps.backport-tests.outcome == 'skipped' }} | |
shell: pwsh | |
run: | | |
./hz.ps1 test -tf "method != SendReceive" -server ${{ github.event.inputs.hz_version }}-SNAPSHOT | |
working-directory: tag | |
env: | |
HAZELCAST_SERVER_VERSION: ${{ github.event.inputs.hz_version }} | |
- name: Run non-enterprise tests with compatibility | |
if: ${{ matrix.server_kind == 'os' && steps.backport-tests.outcome == 'success' }} | |
shell: pwsh | |
run: | | |
./hz-latest.ps1 test -tf "method != SendReceive" -server ${{ github.event.inputs.hz_version }}-SNAPSHOT | |
working-directory: tag | |
env: | |
HAZELCAST_SERVER_VERSION: ${{ github.event.inputs.hz_version }} | |
- name: Run all tests | |
if: ${{ matrix.server_kind == 'enterprise' && steps.backport-tests.outcome == 'skipped' }} | |
shell: pwsh | |
run: | | |
./hz.ps1 -enterprise -tf "method != SendReceive" -server ${{ github.event.inputs.hz_version }}-SNAPSHOT test ${{ secrets.GH_PAT }} | |
working-directory: tag | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
HAZELCAST_SERVER_VERSION: ${{ github.event.inputs.hz_version }} | |
- name: Run all tests with compatibility | |
if: ${{matrix.server_kind == 'enterprise' && steps.backport-tests.outcome == 'success'}} | |
shell: pwsh | |
run: | | |
./hz-latest.ps1 -enterprise -tf "method != SendReceive" -server ${{ github.event.inputs.hz_version }}-SNAPSHOT test ${{ secrets.GH_PAT }} | |
working-directory: tag | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
HAZELCAST_SERVER_VERSION: ${{ github.event.inputs.hz_version }} | |
# upload logs | |
- name: Upload RC and Server logs | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: Rc-Server-logs-${{ matrix.client_tag }}-${{ matrix.server_kind }} | |
path: '${{github.workspace}}\tag\temp\rc\' # entire directory | |
setup_cpp_client_matrix: | |
name: Setup the Cpp client test matrix | |
if: ${{ github.event.inputs.run_cpp == 'run' }} | |
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@v2 | |
- name: Set client matrix | |
id: set-matrix | |
run: echo "::set-output name=matrix::$( python get_client_matrix.py --client cpp --option tag --use-latest-patch-versions )" | |
test_cpp_clients: | |
needs: [ upload_jars, setup_cpp_client_matrix ] | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
client_tag: ${{ fromJson(needs.setup_cpp_client_matrix.outputs.matrix) }} | |
server_kind: [ enterprise ] #TODO When tests are divided as OS, ENTERPRISE, OS matrix will be added | |
name: Test CPP client ${{ matrix.client_tag }} with ${{ matrix.server_kind }} server | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Checkout master | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-cpp-client | |
path: master | |
- name: Checkout to tag | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-cpp-client | |
path: tag | |
ref: ${{ matrix.client_tag }} | |
- name: Delete old scripts and get new ones | |
run: | | |
rm -rf tag/scripts | |
cp -R master/scripts tag/ | |
- name: Install Necessary Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y net-tools libssl-dev gdb | |
working-directory: tag | |
- name: Install Boost | |
run: | | |
sudo ./scripts/install-boost.sh 1.76.0 | |
working-directory: tag | |
- name: Install Thrift | |
run: | | |
sudo ./scripts/install-thrift.sh 0.13.0 | |
working-directory: tag | |
- name: Download Hazelcast tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: tag | |
- name: Download Hazelcast SQL JAR (if exists) | |
continue-on-error: true | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: tag | |
- name: Download Hazelcast JAR | |
if: ${{ matrix.server_kind == 'os' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast | |
path: tag | |
- name: Download Hazelcast Enterprise JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: tag | |
- name: Download Hazelcast Enterprise tests JAR | |
if: ${{ matrix.server_kind == 'enterprise' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: tag | |
- name: Build & Install | |
env: | |
BUILD_DIR: build | |
run: | | |
./scripts/build-unix.sh \ | |
-DCMAKE_BUILD_TYPE=Debug \ | |
-DBUILD_SHARED_LIBS=ON \ | |
-DWITH_OPENSSL=ON \ | |
-DBUILD_TESTS=ON \ | |
-DBUILD_EXAMPLES=OFF | |
working-directory: tag | |
- name: Test | |
env: | |
BUILD_DIR: build | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
GTEST_FILTER: -*Aws*:*DescribeInstancesTest* | |
HZ_VERSION: '${{ github.event.inputs.hz_version }}-SNAPSHOT' | |
run: | | |
ulimit -c unlimited | |
sudo sh -c "echo 'core' > /proc/sys/kernel/core_pattern" | |
sudo sh -c "echo '1' > /proc/sys/kernel/core_uses_pid" | |
./scripts/test-unix.sh | |
working-directory: tag | |
setup_go_client_matrix: | |
name: Setup the Go client test matrix | |
if: ${{ github.event.inputs.run_go == 'run' }} | |
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@v2 | |
- name: Set client matrix | |
id: set-matrix | |
run: echo "::set-output name=matrix::$( python get_client_matrix.py --client go --option tag --use-latest-patch-versions )" | |
test_go_client: | |
needs: [upload_jars, setup_go_client_matrix] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
client_tag: ${{ fromJson(needs.setup_go_client_matrix.outputs.matrix) }} | |
name: Test Go client ${{ matrix.client_tag }} with enterprise server on ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Read Java Config | |
uses: pietrobolcato/[email protected] | |
id: java-config | |
with: | |
config: ${{ github.workspace }}/.github/java-config.yml | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ steps.java-config.outputs['java-version'] }} | |
distribution: ${{ steps.java-config.outputs['distribution'] }} | |
- name: Checkout the ${{ matrix.client_tag }} | |
uses: actions/checkout@v2 | |
with: | |
repository: hazelcast/hazelcast-go-client | |
path: client | |
ref: ${{ matrix.client_tag }} | |
- name: Download Hazelcast tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-tests | |
path: client | |
- name: Download Hazelcast JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast | |
path: client | |
- name: Download Hazelcast SQL JAR (if exists) | |
continue-on-error: true | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-sql | |
path: client | |
- name: Download Hazelcast Enterprise JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise | |
path: client | |
- name: Download Hazelcast Enterprise tests JAR | |
uses: actions/download-artifact@v2 | |
with: | |
name: hazelcast-enterprise-tests | |
path: client | |
- name: Test | |
env: | |
HAZELCAST_ENTERPRISE_KEY: ${{ secrets.HAZELCAST_ENTERPRISE_KEY }} | |
HZ_VERSION: '${{ github.event.inputs.hz_version }}-SNAPSHOT' | |
SSL_ENABLED: 1 | |
run: | | |
./rc.sh start | |
make test-all | |
working-directory: client |