1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Celery
on:
push:
branches: [ 'main']
paths:
- '**.py'
- '**.txt'
- '.github/workflows/python-package.yml'
- '**.toml'
- "tox.ini"
pull_request:
branches: [ 'main' ]
paths:
- '**.py'
- '**.txt'
- '**.toml'
- '.github/workflows/python-package.yml'
- "tox.ini"
workflow_dispatch:
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
Unit:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy3.11']
os: ["blacksmith-4vcpu-ubuntu-2404", "windows-latest"]
exclude:
- python-version: '3.9'
os: "windows-latest"
- python-version: '3.10'
os: "windows-latest"
- python-version: '3.11'
os: "windows-latest"
- python-version: '3.12'
os: "windows-latest"
- python-version: '3.13'
os: "windows-latest"
- python-version: '3.14t'
os: "windows-latest"
- python-version: 'pypy3.11'
os: "windows-latest"
steps:
- name: Install apt packages
if: startsWith(matrix.os, 'blacksmith-4vcpu-ubuntu')
run: |
sudo apt-get update && sudo apt-get install -f libcurl4-openssl-dev libssl-dev libgnutls28-dev httping expect libmemcached-dev
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: useblacksmith/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install tox
run: python -m pip install --upgrade pip 'tox' tox-gh-actions
- name: >
Run tox for
"${{ matrix.python-version }}-unit"
timeout-minutes: 30
run: |
tox --verbose --verbose
- uses: codecov/codecov-action@v5
with:
flags: unittests # optional
fail_ci_if_error: true # optional (default = false)
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true # optional (default = false)
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
Integration-tests:
needs: [Unit]
if: needs.Unit.result == 'success'
strategy:
matrix:
module: [
'test_backend.py',
'test_canvas.py',
'test_inspect.py',
'test_loader.py',
'test_mem_leak_in_exception_handling.py',
'test_quorum_queue_qos_cluster_simulation.py',
'test_rabbitmq_chord_unlock_routing.py',
'test_rabbitmq_default_queue_type_fallback.py',
'test_security.py',
'test_serialization.py',
'test_tasks.py',
'test_worker.py'
]
uses: ./.github/workflows/integration-tests.yml
with:
module_name: ${{ matrix.module }}
Smoke-tests:
needs: [Unit]
if: needs.Unit.result == 'success'
strategy:
matrix:
module: [
'test_broker_failover.py',
'test_worker_failover.py',
'test_native_delayed_delivery.py',
'test_quorum_queues.py',
'test_hybrid_cluster.py',
'test_revoke.py',
'test_visitor.py',
'test_canvas.py',
'test_consumer.py',
'test_control.py',
'test_signals.py',
'test_tasks.py',
'test_thread_safe.py',
'test_worker.py'
]
uses: ./.github/workflows/smoke-tests.yml
with:
module_name: ${{ matrix.module }}
|