Skip to content

Add an example of how to run async #587

Add an example of how to run async

Add an example of how to run async #587

Workflow file for this run

name: 'Lint and Test'
on:
pull_request:
branches:
- main
paths-ignore:
- 'VERSION'
- 'LICENSE'
- '**.md'
- 'examples'
- 'publish.yaml'
- '.github/workflows/clickhouse_ci.yml'
- '.github/workflows/on_push.yml'
workflow_dispatch:
push:
branches-ignore:
- '*_test'
- '*_dev'
- '*_build'
- 'release_*'
- main
paths-ignore:
- 'VERSION'
- 'LICENSE'
- '**.md'
- 'examples'
- 'publish.yaml'
- '.github/workflows/clickhouse_ci.yml'
- '.github/workflows/on_push.yml'
jobs:
lint:
runs-on: ubuntu-latest
name: PyLint
steps:
- uses: actions/checkout@v4
- name: Set up Python (3.11)
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
pip install -r tests/test_requirements.txt
pip install pylint
python setup.py build_ext --inplace
- name: Run Pylint
run: |
pylint clickhouse_connect
pylint tests
pylint examples
tests:
runs-on: ubuntu-latest
needs: lint
strategy:
matrix:
python-version:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
clickhouse-version:
- '23.8'
- '23.12'
- '24.1'
- '24.2'
- '24.3'
- latest
name: Local Tests Py=${{ matrix.python-version }} CH=${{ matrix.clickhouse-version }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run ClickHouse Container
run: docker run
-d
-p 8123:8123
--name clickhouse
-v /var/lib/clickhouse
-v ${{ github.workspace }}/tests/integration_tests/test_config.xml:/etc/clickhouse-server/conf.d/test_config.xml
--ulimit nofile=262144:262144
clickhouse/clickhouse-server:${{ matrix.clickhouse-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install pip
run: python -m pip install --upgrade pip
- name: Install Test Dependencies
run: pip install -r tests/test_requirements.txt
- name: Build cython extensions
run: python setup.py build_ext --inplace
- name: "Add distribution info" # This lets SQLAlchemy find entry points
run: python setup.py develop
- name: Run tests
env:
CLICKHOUSE_CONNECT_TEST_DOCKER: 'False'
CLICKHOUSE_CONNECT_TEST_FUZZ: 50
SQLALCHEMY_SILENCE_UBER_WARNING: 1
run: pytest tests
check-secret:
runs-on: ubuntu-latest
needs: tests
outputs:
has_secrets: ${{ steps.has_secrets.outputs.HAS_SECRETS }}
steps:
- id: has_secrets
env:
CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST }}
if: "${{ env.CLOUD_HOST != '' }}"
run: echo "HAS_SECRETS=true" >> $GITHUB_OUTPUT
cloud-tests:
runs-on: ubuntu-latest
name: Cloud Tests Py=${{ matrix.python-version }}
needs: check-secret
if: needs.check-secret.outputs.has_secrets == 'true'
strategy:
matrix:
python-version:
- '3.10'
- '3.11'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tests/test_requirements.txt
- name: Build cython extensions
run: python setup.py build_ext --inplace
- name: "Add distribution info" # This lets SQLAlchemy find entry points
run: python setup.py develop
- name: Run tests
env:
CLICKHOUSE_CONNECT_TEST_FUZZ: 10
CLICKHOUSE_CONNECT_TEST_CLOUD: 'True'
CLICKHOUSE_CONNECT_TEST_PORT: 8443
CLICKHOUSE_CONNECT_TEST_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST_SMT }}
CLICKHOUSE_CONNECT_TEST_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD_SMT }}
SQLALCHEMY_SILENCE_UBER_WARNING: 1
run: pytest tests/integration_tests