انتشار نسخه¶
انتشار با برچسب گیت انجام می شود. با فرستادن برچسبی مانند v0.3.1، گردش کار Release اجرا می شود:
- ساخت: بررسی می شود که برچسب با نسخه
pyproject.tomlیکی باشد، سپس بسته ها ساخته و باtwine checkبررسی می شوند. - انتشار: بسته ها با یکی از دو روش زیر در PyPI منتشر می شوند.
- داکر: ایمیج برای
linux/amd64وlinux/arm64ساخته و با برچسب هایX.Y.Z،X.Yوlatestدرghcr.io/sadrmanesh/persian-ragمنتشر می شود. ورود باGITHUB_TOKENخود گردش کار انجام می شود و راز دیگری لازم نیست.
| روش | آماده سازی |
|---|---|
| انتشار مورد اعتماد (پیشنهادی) | در PyPI یک ناشر مورد اعتماد برای این مخزن با گردش کار release.yml و محیط pypi تعریف کنید و متغیر PYPI_TRUSTED_PUBLISHING را برابر true قرار دهید. |
| توکن API | راز PYPI_API_TOKEN را در مخزن تعریف کنید. |
اگر هیچ کدام تنظیم نشده باشد، ساخت انجام می شود اما انتشار با یک پیام اطلاع رسانی رد می شود.
فهرست کارها¶
- نسخه را در
pyproject.tomlوsrc/persian_rag/version.pyبه روز کنید. - بخش تازه ای به
CHANGELOG.mdاضافه کنید. - تغییرات را با CI سبز در شاخه
mainادغام کنید. - برچسب بزنید و بفرستید:
git tag v0.3.1 && git push origin v0.3.1
داکر هاب و آینه گیت لب¶
گردش کار انتشار، ایمیج GHCR را برای همه پلتفرم ها با همان برچسب های X.Y.Z، X.Y و latest در docker.io/<DOCKERHUB_USERNAME>/persian-rag هم کپی می کند. این مرحله فقط وقتی اجرا می شود که رازهای DOCKERHUB_USERNAME و DOCKERHUB_TOKEN در مخزن تعریف شده باشند و در غیر این صورت با یک پیام اطلاع رسانی رد می شود.
گردش کار .github/workflows/mirror.yml شاخه main و همه برچسب ها را به gitlab.com/sadrmanesh/persian-rag می فرستد. این کار فقط با تعریف راز GITLAB_TOKEN (توکن دسترسی گیت لب با مجوز write_repository) انجام می شود. برای فضای نام دیگری در گیت لب، متغیر GITLAB_NAMESPACE را تعریف کنید. گیت هاب همچنان مخزن اصلی برای گزارش ها و درخواست های ادغام است.