Skip to content

Nussknacker benchmark #1829

Nussknacker benchmark

Nussknacker benchmark #1829

name: Nussknacker benchmark
on:
workflow_dispatch:
inputs:
nussknacker_version:
description: "Nussknacker version"
required: false
type: string
transaction_count:
description: "Number of transactions"
required: false
type: string
env:
INPUT_NUSSKNACKER_VERSION: ${{ inputs.nussknacker_version }}
# TODO version should be set up only when build is triggered from nk core (workflow_dispatch / inputs.nussknacker_version defined)
# TODO and when build is on staging or target branch is staging. In any other situation, version from helm values should be used
NUSSKNACKER_VERSION: ${{
inputs.nussknacker_version != '' && inputs.nussknacker_version ||
((github.head_ref == 'staging' || github.ref_name == 'staging') && 'staging-latest' ||
'1.15.3') }}
TRANSACTION_COUNT: ${{ inputs.transaction_count != '' && inputs.transaction_count || '10000000' }}
jobs:
nussknacker-benchmark-flink:
name: Nussknacker benchmark Streaming-Flink
runs-on: ubuntu-latest
env:
# TODO (1) scala_2.12 is used because we use the default flink image. We should prepare our own (https://github.com/TouK/flink-scala-2.13)
# TODO (1) and switch to it
# TODO (2) version should be set up only when build is triggered from nk core (workflow_dispatch / inputs.nussknacker_version defined)
# TODO (2) and when build is on staging or target branch is staging. In any other situation, version from docker-compose should be used
NUSSKNACKER_VERSION: ${{
endsWith(inputs.nussknacker_version, 'SNAPSHOT') && format('{0}_{1}', inputs.nussknacker_version, 'scala-2.12') ||
((github.head_ref == 'staging' || github.ref_name == 'staging') && 'staging-latest_scala-2.12' ||
'1.15.3_scala-2.12') }}
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Print Nussknacker version
run: |
echo "Nussknacker version: $NUSSKNACKER_VERSION, dispatch input version: $INPUT_NUSSKNACKER_VERSION, GITHUB_BASE_REF: $GITHUB_BASE_REF, GITHUB_HEAD_REF: $GITHUB_HEAD_REF, GITHUB_REF_NAME: $GITHUB_REF_NAME"
- name: install quickstart
shell: bash
env:
KAFKA_AUTO_OFFSET_RESET: earliest
run: ./docker/streaming/start.sh
- name: Test
run: ./common/tests/benchmark/runBenchmarkForDockerStreaming.sh $TRANSACTION_COUNT benchmarkFlink.json
- name: Save artifacts
uses: actions/upload-artifact@v2
with:
name: benchmarkDetailsFlink
path: /tmp/benchmarkResult.csv
nussknacker-benchmark-lite:
name: Nussknacker benchmark Streaming-Lite
runs-on: ubuntu-latest
env:
RELEASE: "nu-quickstart"
DEVEL: "true"
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Print Nussknacker version
run: |
echo "Nussknacker version: $NUSSKNACKER_VERSION, dispatch input version: $INPUT_NUSSKNACKER_VERSION, GITHUB_BASE_REF: $GITHUB_BASE_REF, GITHUB_HEAD_REF: $GITHUB_HEAD_REF, GITHUB_REF_NAME: $GITHUB_REF_NAME"
- uses: AbsaOSS/[email protected]
with:
cluster-name: "k3s-default"
k3d-version: "v5.4.9" # default version - change with caution, there was some problem after upgrade
args: >-
--config=.k3d/single-cluster.yml
--trace
- name: install quickstart
shell: bash
run: ./k8s-helm/install-common.sh -f ../common/tests/benchmark/k8sAutoOffsetEarliest.yml
- name: Test
run: ./common/tests/benchmark/runBenchmarkForK8sStreaming.sh $TRANSACTION_COUNT benchmarkLite.json
- name: Save artifacts
uses: actions/upload-artifact@v2
with:
name: benchmarkDetailsLite
path: /tmp/benchmarkResult.csv