Skip to content

Test Charp client against the released IMDG servers #58

Test Charp client against the released IMDG servers

Test Charp client against the released IMDG servers #58

name: Test Charp 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@v5
with:
python-version: 3.9
- name: Checkout to scripts
uses: actions/checkout@v4
- name: Set server matrix
id: set-matrix
run: echo "::set-output name=matrix::$( python get_server_matrix.py )"
test_client:
needs: [setup_server_matrix]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version: ${{ fromJson(needs.setup_server_matrix.outputs.matrix) }}
kind: [os, enterprise]
os: [ ubuntu-latest, windows-latest ]
name: Test CSharp ${{ github.event.inputs.branch_name }} branch against ${{ matrix.kind }} ${{ matrix.version }} server on ${{ matrix.os }}
steps:
- name: Checkout to scripts
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
8.0.x
- uses: madhead/semver-utils@latest
name: Check Server Version to Determine License Version
id: version
with:
version: ${{ matrix.version }}
compare-to: 5.3.0
- name: Read Java Config
uses: pietrobolcato/action-read-yaml@9f13718d61111b69f30ab4ac683e67a56d254e1d
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 ${{ github.event.inputs.branch_name }}
uses: actions/checkout@v4
with:
repository: ${{ github.event.inputs.organization_name }}/hazelcast-csharp-client
path: client
ref: ${{ github.event.inputs.branch_name }}
- name: Update submodules
run: |
git submodule update --init
working-directory: client
- name: Build
shell: pwsh
run: ./hz.ps1 -localRestore build
working-directory: client
- name: Run non-enterprise tests
shell: pwsh
if: ${{ matrix.kind == 'os' }}
run: ./hz.ps1 -server ${{ matrix.version }} test
working-directory: client
env:
HAZELCAST_SERVER_VERSION: ${{ matrix.version }}
- name: Run all tests
shell: pwsh
if: ${{ matrix.kind == 'enterprise' }}
run: ./hz.ps1 -enterprise -noRestore -localRestore -server ${{ matrix.version }} test ${{ secrets.GH_PAT }}
working-directory: client
env:
HAZELCAST_ENTERPRISE_KEY: ${{ '>' == steps.version.outputs.comparison-result && secrets.HAZELCAST_ENTERPRISE_KEY || secrets.HAZELCAST_ENTERPRISE_KEY_V5 }}
HAZELCAST_SERVER_VERSION: ${{ matrix.version }}