Skip to content

feat:Add loadbalancer #4451

feat:Add loadbalancer

feat:Add loadbalancer #4451

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: PR validation
on:
pull_request:
jobs:
run-rat-plugin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: Validate java code
run: mvn clean verify
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
run-format-and-lint-ui:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: '22.x'
cache: 'npm'
cache-dependency-path: ui/package-lock.json
- name: Set up Develocity npm agent
run: |
npm exec -y -- pacote extract @gradle-tech/develocity-agent ~/.node_libraries/@gradle-tech/develocity-agent
- name: Install dependencies
working-directory: ./ui
run: |
npm install
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
NODE_OPTIONS: '-r @gradle-tech/develocity-agent/preload'
- name: Format and Lint all files
working-directory: ./ui
run: |
npm run format
npm run lint
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
NODE_OPTIONS: '-r @gradle-tech/develocity-agent/preload'
run-cypress-e2e-tests:
runs-on: ubuntu-latest
needs: [python-quality-checks, python-unit-tests, run-format-and-lint-ui]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: '22.x'
cache: 'npm'
cache-dependency-path: ui/package-lock.json
- name: Set up Develocity npm agent
run: |
npm exec -y -- pacote extract @gradle-tech/develocity-agent ~/.node_libraries/@gradle-tech/develocity-agent
- name: Install NPM dependencies
working-directory: ./ui
run: |
rm -rf node_modules package-lock.json
npm install
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
NODE_OPTIONS: '-r @gradle-tech/develocity-agent/preload'
- name: Build UI
working-directory: ./ui
run: |
npm run build
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
NODE_OPTIONS: '-r @gradle-tech/develocity-agent/preload'
- name: Build with Maven
run: mvn clean package
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
- name: Build and run streampipes
run: docker compose up --build -d
- name: Wait 80 seconds
working-directory: ./installer/compose
run: sleep 80
- name: 'UI Tests'
working-directory: ./ui
run: npx cypress run --spec "cypress/tests/**/*.smoke.spec.ts"
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.STREAMPIPES_DEVELOCITY_ACCESS_KEY }}
NODE_OPTIONS: '-r @gradle-tech/develocity-agent/preload'
python-quality-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install and configure Poetry
uses: snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a
with:
version: 1.5.1
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install Python dependencies
working-directory: ./streampipes-client-python
run: |
poetry install --with dev,stubs --all-extras
- name: Run style & code checks
working-directory: ./streampipes-client-python
run: |
make pre-commit
python-unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python: ["3.10", "3.11", "3.12", "3.13"]
os: [ubuntu-latest, macos-latest, windows-latest]
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v5
- name: Set up Python v${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install and configure Poetry
uses: snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a
with:
version: 1.5.1
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install Python dependencies
working-directory: ./streampipes-client-python
run: |
poetry install --with dev,stubs --all-extras
- name: Run unit-tests
working-directory: ./streampipes-client-python
run: |
source $VENV # see https://github.com/snok/install-poetry#running-on-windows
make unit-tests
python-doc-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install and configure Poetry
uses: snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a
with:
version: 1.5.1
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install Python dependencies
working-directory: ./streampipes-client-python
run: |
poetry install --with docs
- name: Build MkDocs
working-directory: ./streampipes-client-python
run: |
make doc