Add a smoke test workflow that runs against py-amqp, Kombu and Billiard main - #10676
Conversation
…rd main Nothing in CI ran against the Git main of the three core dependencies, so the Billiard 4.3.0 changes that broke the smoke tests (celery#10659) were only noticed a month after the commit that introduced them. Add a separate workflow on the normal push/PR triggers that calls the reusable smoke workflow with a new dev_requirements input. It selects a smoke-dev tox env, which is the smoke env plus requirements/dev.txt, and sets CELERY_DEV_REQUIREMENTS so the worker image installs dev.txt as well. The image install needs --force-reinstall because pip keeps the PyPI copy when the Git checkout reports the same version string. The job covers test_worker.py and test_tasks.py on one Python version. Without the flag the tox env and the image build are unchanged. Closes celery#10675
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10676 +/- ##
=======================================
Coverage 89.28% 89.28%
=======================================
Files 153 153
Lines 20397 20397
Branches 2431 2431
=======================================
Hits 18212 18212
Misses 1881 1881
Partials 304 304
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
|
i can not see the jobs, can you please point me to them? |
|
They run as a separate workflow, "Smoke Tests (dev requirements)": https://github.com/celery/celery/actions/runs/35589666299 — four jobs, |
|
things are passing here but the kombu 5.7.0a1 compatibility check pr got some failures here #10677 |
Closes #10675.
Adds
.github/workflows/smoke-tests-dev.yml, a separate workflow on the same push/PR triggers as the main one. It calls the reusablesmoke-tests.ymlwith a newdev_requirementsinput, which selects thesmoke-devtox env: thesmokeenv plusrequirements/dev.txt, so the host gets py-amqp, Kombu and Billiard from Gitmain. That env also setsCELERY_DEV_REQUIREMENTS=1, whichSmokeWorkerContainer.buildargs()passes to the worker image, where a new build arg installsdev.txton top of the editable Celery install. Without the flag the image build is unchanged, andpython-package.ymlis untouched.The job covers
test_worker.pyandtest_tasks.py(the two files that caught the Billiard 4.3.0 changes in #10659) on one Python version, so it is two extra jobs rather than another full matrix.Checked locally on macOS with Docker: the
3.12-smoke-devtox env ends up with py-amqp, Kombu and Billiard from Git (direct_url.jsonpoints at the three repos), the worker image does too with the build arg and stays on PyPI without it, and both files pass in that mode (test_tasks.py22 passed,test_worker.py62 passed / 6 skipped, same as with the released versions).Two things worth knowing. The image install needs
--force-reinstall: pip clones the three repos but keeps the PyPI copy when the checkout reports the same version string. Anddefault.txtpinsbilliard==4.3.0, so once Billiardmainbumps its version the dev job will fail at install time until the pin moves, which is the kind of thing this job exists to surface.