پرش به محتویات

انتشار نسخه

انتشار با برچسب گیت انجام می شود. با فرستادن برچسبی مانند v0.3.1، گردش کار Release اجرا می شود:

  1. ساخت: بررسی می شود که برچسب با نسخه pyproject.toml یکی باشد، سپس بسته ها ساخته و با twine check بررسی می شوند.
  2. انتشار: بسته ها با یکی از دو روش زیر در PyPI منتشر می شوند.
  3. داکر: ایمیج برای 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 را در مخزن تعریف کنید.

اگر هیچ کدام تنظیم نشده باشد، ساخت انجام می شود اما انتشار با یک پیام اطلاع رسانی رد می شود.

فهرست کارها

  1. نسخه را در pyproject.toml و src/persian_rag/version.py به روز کنید.
  2. بخش تازه ای به CHANGELOG.md اضافه کنید.
  3. تغییرات را با CI سبز در شاخه main ادغام کنید.
  4. برچسب بزنید و بفرستید: 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 را تعریف کنید. گیت هاب همچنان مخزن اصلی برای گزارش ها و درخواست های ادغام است.