Skip to content

Fix/resources concurrent start & stop to make right #2845

Fix/resources concurrent start & stop to make right

Fix/resources concurrent start & stop to make right #2845

Workflow file for this run

name: PR Tests
on: [pull_request]
jobs:
is_source_changed:
name: Check if sources has changed
runs-on: ubuntu-22.04
outputs:
is_source_changed: ${{steps.check_source_change.outputs.changed}}
steps:
- name: Checkout repository
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
fetch-depth: 0
- name: Check if any source changed
id: check_source_change
uses: ./.github/actions/files-changed
with:
paths: |
.github/*
examples/*
testplan/*
tests/*
scripts/*
pytest.ini
pyproject.toml
setup.py
requirements.txt
success:
name: PR Test Completed
needs: [is_source_changed, test]
runs-on: ubuntu-22.04
if: always() && needs.is_source_changed.result == 'success' && (needs.is_source_changed.outputs.is_source_changed == 'false' || needs.Test.result == 'success')
steps:
- run: echo ${{needs.is_source_changed.result}} ${{needs.is_source_changed.outputs.is_source_changed}} ${{needs.Test.result}}
- run: true
lint_python:
name: Run lint on python code
needs: [is_source_changed]
runs-on: ubuntu-22.04
if: needs.is_source_changed.outputs.is_source_changed == 'true'
env:
LINT_PYTHON_VERSION: "3.10"
steps:
- name: Checkout repository
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up uv & Python
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
python-version: ${{ env.LINT_PYTHON_VERSION }}
- name: Setup
run: |
sudo apt-get install -y libkrb5-dev
uv pip install . --group dev -c constraints.txt
- name: Lint
run: doit lint
build_ui:
name: Build UI (with test and lint)
needs: [is_source_changed]
runs-on: ubuntu-22.04
if: needs.is_source_changed.outputs.is_source_changed == 'true'
env:
REACT_APP_API_BASE_URL: "/fake/api/endpoint"
steps:
- name: Checkout repository
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up uv & Python
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
python-version: '3.11'
- name: Set up Node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
- name: Set up PNPM
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
with:
version: 9
- name: Setup
run: uv pip install doit
- name: Build
run: |
doit lint_ui
CI=false doit build_ui
doit test_ui
- name: Archive ui artifacts
uses: actions/upload-artifact@v4
with:
name: ui_bundle
path: testplan/web_ui/testing/build
retention-days: 1
test:
name: Test
needs: [lint_python, build_ui]
runs-on: ${{ matrix.os }}
env:
CI: ""
strategy:
matrix:
os: [ubuntu-22.04, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
package-extras: ['', '[all]']
exclude:
- os: windows-latest
package-extras: ''
- os: ubuntu-22.04
python-version: '3.10'
package-extras: '[all]'
- os: ubuntu-22.04
python-version: '3.11'
package-extras: '[all]'
fail-fast: false
steps:
- run: echo "BUILD ${{ matrix.os }} ${{ matrix.python-version }} ${{needs.is_source_changed.outputs.is_source_changed}}"
- name: Checkout repository
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up uv & Python
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
python-version: ${{ matrix.python-version }}
- name: Download ui bundle
uses: actions/download-artifact@v4
with:
name: ui_bundle
path: testplan/web_ui/testing/build
- name: Set up Linux package for tests
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: sudo apt-get install -y libkrb5-dev
- name: Set up Zookeeper for tests
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: sudo apt-get -y install zookeeper zookeeper-bin zookeeperd
- name: Set up Kafka for tests
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz -O kafka.tgz
sudo mkdir /opt/kafka
sudo chown -R $USER:$USER /opt/kafka
tar zxf kafka.tgz -C /opt/kafka --strip-components 1
- name: Install Python dependencies
run: uv pip install .${{ matrix.package-extras }} --group test -c constraints.txt
- name: Test Python
run: doit test