Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
b19cdbb
Add Blacksmith Docker layer caching to all Docker builds (#9840)
Nusnus Jul 31, 2025
04337f8
Bump Kombu to v5.6.0b1 (#9839)
Nusnus Aug 1, 2025
4841c99
Disable pytest-xdist for smoke tests and increase retries (CI ONLY) (…
Nusnus Aug 3, 2025
46443dc
Fix Python 3.13 compatibility in events dumper (#9826)
Nusnus Aug 3, 2025
a8ec7fa
Dockerfile Build Optimizations (#9733)
Nusnus Aug 4, 2025
6dcecbe
Migrated from useblacksmith/build-push-action@v1 to useblacksmith/set…
Nusnus Aug 5, 2025
c2b4ad1
Remove incorrect example
YuppY Aug 8, 2025
da4a80d
Revert "Use Django DB max age connection setting" (#9824)
danlamanna Aug 10, 2025
7adc9e6
Fix pending_result memory leak (#9806)
tsoos99dev Aug 11, 2025
f4e2cf8
Update python-package.yml (#9856)
auvipy Aug 12, 2025
e906aae
Bump actions/checkout from 4 to 5 (#9857)
dependabot[bot] Aug 12, 2025
33eb148
Bump Kombu to v5.6.0b2 (#9858)
Nusnus Aug 12, 2025
777d92f
Refactor integration and smoke tests CI (#9855)
Nusnus Aug 26, 2025
31d05ed
Fix `AsyncResult.forget()` with couchdb backend method raises `TypeEr…
temaxuck Aug 26, 2025
6506ad3
improve docs for SQS authentication (#9868)
Aug 26, 2025
6208dec
Added `.github/copilot-instructions.md` for GitHub Copilot (#9874)
Nusnus Aug 26, 2025
3703beb
misc: credits (#9877)
0asys Aug 30, 2025
166f705
Choose queue type and exchange type when creating missing queues (fix…
ghirailghiro Aug 31, 2025
6804ea8
fix: prevent celery from hanging due to spawned greenlet errors in gr…
linusphan Aug 31, 2025
246bca1
Feature/disable prefetch fixes (#9863)
Dkhodos Aug 31, 2025
6da3282
Add worker_eta_task_limit configuration to manage ETA task memory usa…
sashu2310 Aug 31, 2025
95bec6d
Update runner version in Docker workflow (#9884)
auvipy Sep 9, 2025
7c75fa7
Prepare for (pre) release: v5.6.0b1 (#9890)
Nusnus Sep 15, 2025
f55bb5f
GitHub Actions: Test on Python 3.14 release candidate 2 (#9891)
cclauss Sep 18, 2025
c5083fb
Update pypy to python 3.11 (#9896)
cclauss Sep 18, 2025
893ce60
Feature: Add support credential_provider to Redis Backend (#9879)
alaminopu Sep 18, 2025
a5e9ce5
Bump pytest-cov from 6.0.0 to 7.0.0 (#9899)
dependabot[bot] Sep 19, 2025
989aac0
Celery.timezone: try tzlocal.get_localzone() before using LocalTimezo…
woutdenolf Sep 20, 2025
9bea091
Run integration tests on Python 3.14 (#9903)
cclauss Sep 20, 2025
c276fed
Fix arithmetic overflow for MSSQL result backend (#9904)
vladborovtsov Sep 21, 2025
70087e4
Add documentation for task_id param for apply_async
sumo1998 Sep 23, 2025
8297e70
Support redis client name (#9900)
mdalp Sep 28, 2025
943dfb8
Bump Kombu to v5.6.0rc1 (#9918)
Nusnus Sep 28, 2025
e7a9550
Fix broker connection retry attempt counter in the error log (#9911)
sumo1998 Sep 28, 2025
8063230
fix: restrict disable-prefetch feature to Redis brokers only (#9919)
Dkhodos Sep 30, 2025
88f3cc7
fix(): preserve group order in replaced signature (#9910)
simonepozzoli-pix4d Oct 4, 2025
7fc848f
Bump github/codeql-action from 3 to 4 (#9928)
dependabot[bot] Oct 7, 2025
ae85342
Remove Python 3.8 from CI workflow (#9930)
auvipy Oct 9, 2025
85b053f
Update default Python versions in integration tests (#9931)
auvipy Oct 9, 2025
ae89d92
Update tox.ini to remove Python 3.8 (#9932)
auvipy Oct 9, 2025
69e8463
Remove Python 3.8 from Dockerfile (#9933)
auvipy Oct 9, 2025
491ef35
Update Python version requirement to 3.9 (#9935)
auvipy Oct 9, 2025
bb9da21
Update pypy version from 3.10 to 3.11 in Dockerfile (#9934)
auvipy Oct 12, 2025
37cd233
Bump grpcio from 1.67.0 to 1.75.1 (#9519)
dependabot[bot] Oct 12, 2025
09cf353
Bump isort from 5.13.2 to 6.1.0 (#9922)
dependabot[bot] Oct 12, 2025
66cb940
Bump cryptography from 44.0.2 to 46.0.2 (#9923)
dependabot[bot] Oct 12, 2025
e17a8f1
[pre-commit.ci] pre-commit autoupdate (#9554)
pre-commit-ci[bot] Oct 13, 2025
f7094a8
Bump pyperclip from 1.9.0 to 1.11.0
dependabot[bot] Oct 13, 2025
724c816
Update elasticsearch requirement from <=8.17.2 to <=9.1.1 (#9945)
dependabot[bot] Oct 14, 2025
13d9d76
Bump pytest from 8.3.5 to 8.4.2 (#9944)
dependabot[bot] Oct 14, 2025
9c8cc43
Update elastic-transport requirement from <=8.17.1 to <=9.1.0 (#9943)
dependabot[bot] Oct 14, 2025
d9e2f5e
Bump cryptography from 46.0.2 to 46.0.3
dependabot[bot] Oct 16, 2025
987e9d9
Bump pytest-timeout from 2.3.1 to 2.4.0 (#9949)
dependabot[bot] Oct 18, 2025
4df81dd
Bump google-cloud-firestore from 2.20.1 to 2.21.0 (#9948)
dependabot[bot] Oct 18, 2025
508cb7c
Flake8 fixes (#9955)
auvipy Oct 18, 2025
d00d7df
Remove test-pypy3.txt from Dockerfile dependencies (#9939)
auvipy Oct 19, 2025
2958c6c
Remove backports.zoneinfo for Python 3.9 compatibility (#9956)
auvipy Oct 19, 2025
eaba0b5
Update pytest-cov version for Python compatibility (#9957)
auvipy Oct 19, 2025
c4e4bab
Update pytest-rerunfailures and pre-commit versions (#9958)
auvipy Oct 19, 2025
2731860
Prepare for (pre) release: v5.6.0b2 (#9938)
Nusnus Oct 20, 2025
1ad3bd4
Add support for Django Connection pool (#9953)
petrprikryl Oct 20, 2025
2f60642
Pin tblib to ==3.1.0
kernelshard Oct 25, 2025
7d501ca
fix(worker): continue to attempt to bind other queues after a native …
Izzette Oct 25, 2025
26bee54
Handle UnpicklingError in persistent scheduler initialization (#9952)
pakallis Oct 25, 2025
2aebae5
Bug Fix: Nested Chords Fail When Using django-celery-results with a R…
kumuthu53 Oct 26, 2025
0a45509
Add support pymongo 4.12 (#9665)
kidoz Oct 28, 2025
47b7b50
Make tests compatible with pymongo >= 4.14 (#9968)
cjwatson Oct 28, 2025
0c30c18
tblib updated from 3.1.0 to 3.2.0 (#9970)
MehrazRumman Oct 28, 2025
f3857e3
Fix remaining function typing and docstring (#9971)
wcislo-saleor Oct 28, 2025
1f27d71
Update elasticsearch requirement from <=9.1.1 to <=9.1.2
dependabot[bot] Oct 28, 2025
f47d5be
Bump tblib from 3.2.0 to 3.2.1
dependabot[bot] Oct 31, 2025
7aaab22
Fix regex pattern in version parsing and remove duplicate entry in __…
sagar1343 Nov 1, 2025
ebc6435
Bump Kombu to v5.6.0 and removed <5.7 limit on kombu (#9981)
Nusnus Nov 1, 2025
5fd0b3e
Prepare for (pre) release: v5.6.0rc1 (#9982)
Nusnus Nov 1, 2025
6d7c14e
[pre-commit.ci] pre-commit autoupdate (#9992)
pre-commit-ci[bot] Nov 10, 2025
afb6730
Bump tblib from 3.2.1 to 3.2.2 (#9995)
dependabot[bot] Nov 12, 2025
929412e
Remove Python 4.0 version condition for pytest dependencies (#9993)
ulgens Nov 14, 2025
30649db
Fix log leaking broker credentials (#9997)
giancarloromeo Nov 14, 2025
63c1910
Don't fail task on timeout during cold shutdown (#9678)
Nusnus Nov 17, 2025
f32b92f
Add Py39-314t to CI (#9999)
Nusnus Nov 18, 2025
95d0552
Bump actions/checkout from 5 to 6 (#10003)
dependabot[bot] Nov 21, 2025
3f0f0fe
asynpool: Don't return from inside a finally block (#10000)
torarvid Nov 22, 2025
b446910
Prepare for (pre) release: v5.6.0rc2 (#10005)
Nusnus Nov 22, 2025
0932d2c
[pre-commit.ci] pre-commit autoupdate (#10007)
pre-commit-ci[bot] Nov 24, 2025
1133f22
Bump mypy from 1.14.1 to 1.19.0 (#10008)
dependabot[bot] Nov 30, 2025
cca1116
Prepare for release: v5.6.0 (#10010)
Nusnus Nov 30, 2025
9f0a61c
Fix Redis Sentinel ACL authentication support (#10013)
anthonykuzmich7 Dec 3, 2025
fc94764
[pre-commit.ci] pre-commit autoupdate (#10012)
pre-commit-ci[bot] Dec 3, 2025
ab711a0
Fix: Broker heartbeats not sent during graceful shutdown (#9986)
weetster Dec 5, 2025
12e764c
Document confirm_publish broker transport option (#10016)
JaeHyuckSa Dec 5, 2025
a4f9beb
close DB pools only in prefork mode (#10020)
petrprikryl Dec 9, 2025
cc3350e
Fix: Avoid unnecessary Django database connection creation during cle…
snopoke Dec 9, 2025
cb08d50
reliable prefork detection (#10023)
petrprikryl Dec 16, 2025
170fe55
[pre-commit.ci] pre-commit autoupdate (#10027)
pre-commit-ci[bot] Dec 16, 2025
6da72bd
better coverage (#10029)
petrprikryl Dec 16, 2025
f19db70
Bump mypy from 1.19.0 to 1.19.1 (#10028)
dependabot[bot] Dec 16, 2025
5f8659b
Clarify 'result_extended' setting usage in tasks
SpaceShaman Dec 16, 2025
0527296
Bump google-cloud-firestore from 2.21.0 to 2.22.0
dependabot[bot] Dec 17, 2025
2167529
Stop importing pytest_subtests
cjwatson Dec 22, 2025
ba20bed
Only use exceptiongroup backport for Python < 3.11 (#10033)
cjwatson Dec 22, 2025
21dbc73
Prepare for release: v5.6.1 (#10037)
Nusnus Dec 29, 2025
9d6ab11
Fix recursive WorkController instantiation in DjangoWorkerFixup + Att…
bruunotrindade Jan 4, 2026
333a82f
Bugfix: Revoked tasks now immediately update backend status to REVOKE…
Nusnus Jan 4, 2026
6a43c84
Prepare for release: v5.6.2 (#10049)
Nusnus Jan 4, 2026
87f1176
Fix Django worker recursion bug + defensive checks for pool_cls.__mod…
maycuatroi1 Jan 5, 2026
0339830
Update elasticsearch requirement from <=9.1.2 to <=9.2.1 (#10053)
dependabot[bot] Jan 5, 2026
1780e9f
Revert "Update elasticsearch requirement from <=9.1.2 to <=9.2.1 (#10…
auvipy Jan 6, 2026
3442e3b
Docs: Update user_preload_options example to use click. (#10056)
jorsyk Jan 10, 2026
16d7ae1
Fix invalid configuration key "bootstrap_servers" in Kafka demo (#10060)
jorsyk Jan 10, 2026
83f85e6
Fix broken images on PyPI page (#10066)
Timour-Ilyas Jan 17, 2026
bb7eb38
Remove broken reference.
Jan 22, 2026
e2f9d3b
Removed --dist=loadscope from smoke tests (#10073)
Nusnus Jan 25, 2026
f78be80
Docs: Clarify task_retry signal args may be None (#9851)
GangEunzzang Jan 27, 2026
6f17d8b
Update example for Django (#10081)
sbc-khacnha Feb 3, 2026
e35c2e6
Make tests compatible with pymongo >= 4.16 (#10074)
cjwatson Feb 4, 2026
54b7a41
fix: source install of cassandra-driver (#10105)
Izzette Feb 11, 2026
5d05677
fix: register task cross-reference role in Sphinx extension (#10100)
veeceey Feb 11, 2026
f2e37f0
fix: avoid cycle detection in native delayed delivery (#10095)
Izzette Feb 11, 2026
e78bc78
fix(asynpool): avoid AttributeError when proc lacks _sentinel_poll (#…
mriddle Feb 14, 2026
f176fc6
Update elastic-transport requirement from <=9.1.0 to <=9.2.1 (#10052)
dependabot[bot] Feb 14, 2026
fde34c8
fix dusk_astronomical horizon set to +18 instead of -18 (#10121)
Mr-Neutr0n Feb 14, 2026
8aa1a80
Fix/10106 onupdate col use lambda func (#10108)
ChickenBenny Feb 15, 2026
2ac7070
Fix warm shutdown RuntimeError with eventlet>=0.37.0 (#10083) (#10123)
ChickenBenny Feb 15, 2026
9df38ec
Fix 10109 db backend connection health (#10124)
ChickenBenny Feb 16, 2026
30b5124
Bump grpcio from 1.75.1 to 1.76.0 (#9962)
dependabot[bot] Feb 18, 2026
e0a9716
Bump cryptography from 46.0.3 to 46.0.5
dependabot[bot] Feb 18, 2026
3026b48
Database Backend filter unsupport sql engine arguments with nullpool …
ChickenBenny Feb 21, 2026
4b2794f
fix(beat): correct argument order in Service.__reduce__ (#10137)
bysiber Feb 21, 2026
023827e
ci: declare explicit read-only token permissions in workflow jobs
rohan436 Feb 22, 2026
d8cbbec
chore: 'boto3to' to 'boto3 to' (#10133)
cuiweixie Feb 22, 2026
7f04c80
Database Backend: Add missing index on date_done (Fixes #10097) (#10098)
ChickenBenny Feb 22, 2026
a0efe3e
docs: fix typo in contributing guide (#10141)
Rohan5commit Feb 23, 2026
bb909f0
Refer to Flower / Prometheus for monitoring (#10140)
WilliamDEdwards Feb 23, 2026
55088e1
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Feb 23, 2026
ce52692
docs: remove duplicated words in broker and routing docs
Rohan5commit Feb 25, 2026
bfd5337
docs: fix stale version reference and grammar in README (#10145)
kelsonbrito50 Feb 25, 2026
3b451ef
docs: fix wording in Celery 5.3 worker pool notes (#10149)
Rohan5commit Feb 28, 2026
9712479
docs: fix duplicated word in 3.1 changelog entry
Rohan5commit Feb 28, 2026
f288893
docs: fix changelog typo (context manager) (#10144)
Rohan5commit Feb 28, 2026
5597771
Fix/10096 worker fails to reconnect after redis failover (#10151)
ChickenBenny Mar 1, 2026
6b47d98
Improve on_after_finalize signal documentation (#10155)
Br1an67 Mar 1, 2026
1ab31a2
Add non-commutative example to clarify partial arg ordering in canvas…
Br1an67 Mar 1, 2026
59f6c2d
Bump google-cloud-firestore from 2.22.0 to 2.23.0 (#10126)
dependabot[bot] Mar 2, 2026
0041204
Remove redundant test_isa_mapping test (#10103)
daniel7an Mar 2, 2026
59e45db
Upgrade pytest-celery to >=1.3.0 and adopt PYTEST_CELERY_PKG build ar…
Nusnus Mar 2, 2026
f0c7de0
Chore(deps): Update elasticsearch requirement from <=9.1.2 to <=9.3.0
dependabot[bot] Mar 2, 2026
61d8d38
[pre-commit.ci] pre-commit autoupdate (#10161)
pre-commit-ci[bot] Mar 3, 2026
b69718d
Bump isort from 6.1.0 to 7.0.0 (#10051)
dependabot[bot] Mar 3, 2026
4ec4dca
Remove deprecated args from redis get_connection call (#10036)
JaeHyuckSa Mar 3, 2026
5c70c1d
Fix #6912 rpc backend reconnection error (#10179)
ChickenBenny Mar 8, 2026
b3a8f9d
Fix NameError with TYPE_CHECKING annotations on Python 3.14+ (PEP 649…
drichardson Mar 8, 2026
d232c41
docs: Add elaboration on prefetch multiplier settings (worker_prefetc…
tsangwailam Mar 8, 2026
b34c1e1
Fix O(K²) message bloat in a chain of chords (#10171)
Borzik Mar 8, 2026
37f16e0
test: mock the channel and connection errors in a more elegant way (#…
ChickenBenny Mar 8, 2026
67ab3d2
fix(trace): dispatch chain/callbacks on dedup fast-path for redeliver…
aurangzaib048 Mar 9, 2026
2e51ec6
Extract `reconnect_on_error` to `BaseResultConsumer` (#10189)
ChickenBenny Mar 10, 2026
f0dbcb0
pep 649 (#10187)
ericbuehl Mar 10, 2026
a9a2d4c
[pre-commit.ci] pre-commit autoupdate (#10186)
pre-commit-ci[bot] Mar 10, 2026
6ee6230
Fix#9722 friendly status errors for CLI (#10190)
ChickenBenny Mar 11, 2026
9a27092
docs: clarify after_return behavior for retried tasks (#10192)
KianAnbarestani Mar 12, 2026
f45f62b
Add compression header to message protocol docs (#10156)
Br1an67 Mar 15, 2026
ada2da7
docs: fix duplicated word in bootsteps comment\n\nSigned-off-by: Roha…
Rohan5commit Mar 15, 2026
d23be53
Remove outdated autoreloader section from extending docs (#10154)
Br1an67 Mar 15, 2026
c3c19c3
Fix: prioritize request ignore_result over task definition (#10184)
patri27826 Mar 15, 2026
d06de5f
Chore(deps): Bump nick-fields/retry from 3 to 4 (#10213)
dependabot[bot] Mar 25, 2026
a989e8c
fix: clear the timer while catch the exception (#10218)
ChickenBenny Mar 26, 2026
3f4d8d7
Prepare for release: v5.6.3 (#10221)
Nusnus Mar 26, 2026
54a2976
Rebuild gumloop-celery on celery 5.6.3
kdassharma Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 5.5.3
current_version = 5.6.3
commit = True
tag = True
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?P<releaselevel>[a-z\d]+)?
Expand Down
567 changes: 567 additions & 0 deletions .github/copilot-instructions.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -54,7 +54,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -68,4 +68,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
28 changes: 19 additions & 9 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,41 +26,51 @@ on:

jobs:
docker-build:
runs-on: blacksmith-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Docker Builder
uses: useblacksmith/setup-docker-builder@v1
- name: Build Docker container
run: make docker-build

smoke-tests_dev:
runs-on: blacksmith-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Docker Builder
uses: useblacksmith/setup-docker-builder@v1
- name: "Build smoke tests container: dev"
run: docker build -f t/smoke/workers/docker/dev .

smoke-tests_latest:
runs-on: blacksmith-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Docker Builder
uses: useblacksmith/setup-docker-builder@v1
- name: "Build smoke tests container: latest"
run: docker build -f t/smoke/workers/docker/pypi .

smoke-tests_pypi:
runs-on: blacksmith-4vcpu-ubuntu-2204
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Docker Builder
uses: useblacksmith/setup-docker-builder@v1
- name: "Build smoke tests container: pypi"
run: docker build -f t/smoke/workers/docker/pypi --build-arg CELERY_VERSION="5" .

smoke-tests_legacy:
runs-on: blacksmith-4vcpu-ubuntu-2204
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup Docker Builder
uses: useblacksmith/setup-docker-builder@v1
- name: "Build smoke tests container: legacy"
run: docker build -f t/smoke/workers/docker/pypi --build-arg CELERY_VERSION="4" .
72 changes: 72 additions & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Integration Tests

on:
workflow_call:
inputs:
module_name:
description: 'Name of the test module to run (e.g., test_backend.py)'
required: true
type: string
python_versions:
description: 'JSON array of Python versions to test'
required: false
type: string
default: '["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]'
tox_environments:
description: 'JSON array of tox environments to test'
required: false
type: string
default: '["redis", "rabbitmq", "rabbitmq_redis"]'

jobs:
testing-with:
timeout-minutes: 240
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
python-version: ${{ fromJson(inputs.python_versions) }}
toxenv: ${{ fromJson(inputs.tox_environments) }}

services:
redis:
image: redis
ports:
- 6379:6379
env:
REDIS_HOST: localhost
REDIS_PORT: 6379
rabbitmq:
image: rabbitmq:management
ports:
- 5672:5672
- 15672:15672
env:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest

steps:
- name: Install apt packages
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 }}-integration-${{ matrix.toxenv }}-${{ inputs.module_name }}"
uses: nick-fields/retry@v4
with:
timeout_minutes: 15
max_attempts: 5
retry_wait_seconds: 0
command: |
tox --verbose --verbose -e "${{ matrix.python-version }}-integration-${{ matrix.toxenv }}" -- -k ${{ inputs.module_name }} -vv
5 changes: 4 additions & 1 deletion .github/workflows/linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ name: Linter

on: [pull_request, workflow_dispatch]

permissions:
contents: read

jobs:
linter:
runs-on: blacksmith-4vcpu-ubuntu-2204
steps:

- name: Checkout branch
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
139 changes: 39 additions & 100 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ name: Celery

on:
push:
branches: [ 'main']
branches: [ 'main', 'v5.6.x' ]
paths:
- '**.py'
- '**.txt'
- '.github/workflows/python-package.yml'
- '**.toml'
- "tox.ini"
pull_request:
branches: [ 'main' ]
branches: [ 'main', 'v5.6.x' ]
paths:
- '**.py'
- '**.txt'
Expand All @@ -33,26 +33,30 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.10']
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: 'pypy-3.10'
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@v4
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: useblacksmith/setup-python@v6
with:
Expand Down Expand Up @@ -83,71 +87,36 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}

Integration:
needs:
- Unit
if: needs.Unit.result == 'success'
timeout-minutes: 240

runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
toxenv: ['redis', 'rabbitmq', 'rabbitmq_redis']

services:
redis:
image: redis
ports:
- 6379:6379
env:
REDIS_HOST: localhost
REDIS_PORT: 6379
rabbitmq:
image: rabbitmq
ports:
- 5672:5672
env:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest

steps:
- name: Install apt packages
run: |
sudo apt-get update && sudo apt-get install -f libcurl4-openssl-dev libssl-dev libgnutls28-dev httping expect libmemcached-dev

- uses: actions/checkout@v4
- 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 }}-integration-${{ matrix.toxenv }}"
uses: nick-fields/retry@v3
with:
timeout_minutes: 60
max_attempts: 2
retry_wait_seconds: 0
command: |
tox --verbose --verbose -e "${{ matrix.python-version }}-integration-${{ matrix.toxenv }}" -vv
Integration-tests:
needs: [Unit]
if: needs.Unit.result == 'success'
strategy:
matrix:
module: [
'test_backend.py',
'test_canvas.py',
'test_dedup_chain_dispatch.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:
needs:
- Unit
Smoke-tests:
needs: [Unit]
if: needs.Unit.result == 'success'
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
test-case: [
module: [
'test_broker_failover.py',
'test_worker_failover.py',
'test_native_delayed_delivery.py',
Expand All @@ -163,36 +132,6 @@ jobs:
'test_thread_safe.py',
'test_worker.py'
]

steps:
- name: Fetch Docker Images
run: |
docker pull redis:latest
docker pull rabbitmq:latest

- name: Install apt packages
run: |
sudo apt update
sudo apt-get install -y procps # Install procps to enable sysctl
sudo sysctl -w vm.overcommit_memory=1

- uses: actions/checkout@v4
- 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 }}-smoke-${{ matrix.test-case }}"
uses: nick-fields/retry@v3
with:
timeout_minutes: 30
max_attempts: 2
retry_wait_seconds: 0
command: |
tox --verbose --verbose -e "${{ matrix.python-version }}-smoke" -- -n auto -k ${{ matrix.test-case }}
uses: ./.github/workflows/smoke-tests.yml
with:
module_name: ${{ matrix.module }}
6 changes: 5 additions & 1 deletion .github/workflows/semgrep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ on:
workflow_dispatch:

name: Semgrep

permissions:
contents: read

jobs:
semgrep:
name: Scan
Expand All @@ -21,5 +25,5 @@ jobs:
container:
image: returntocorp/semgrep
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: semgrep ci
Loading