انتشار نسخه
حرفهای
یک بیلد آزمایششده را به یک نسخهٔ منتشرشده تبدیل کنید. این صفحه برای نگهدارندگان است.
پیش از شروع
پیوند به پیش از شروع- همهٔ بررسیهای آزمایش میگذرند، از جمله یک اجرای کامل end-to-end و اجراهای طولانی و fault.
CHANGELOG.mdنسخهٔ جدید را دارد.- Python 3 برای اسکریپتهای انتشار نصب است.
یک نسخه را آماده کنید
پیوند به یک نسخه را آماده کنید-
فایل
releases/notes-<version>.tomlرا بنویسید، برای مثالreleases/notes-1.0.0.toml. فایل یادداشتهای نسخه را ببینید. -
آن را بررسی کنید:
Terminal window python deploy/release/notes.py 1.0.0 --checkنباید هیچ خطایی ببینید. یک کلمهٔ ممنوع، em dash، تاریخ، حرف از لانچ یا یک highlight تکراری باعث میشود با کد 1 خارج شود.
-
متنهای نسخه را بسازید:
Terminal window python deploy/release/notes.py 1.0.0باید 7 فایل در
releases/out/1.0.0/ببینید. -
ایمیج را بسازید و روی یک پوشهٔ پیکربندی تازه شروع کنید:
Terminal window docker build --file deploy/Dockerfile .باید ویزارد اولین اجرا را ببینید.
-
همهٔ بررسیهای آزمایش را روی رایانهٔ خودتان اجرا کنید. آزمایشها محلی اجرا میشوند، نه روی GitHub.
-
شمارهٔ نسخه را به نگهدارنده بدهید. نگهدارنده tag نسخه را روی main push میکند و همین انتشار را شروع میکند.
گزینهها
پیوند به گزینههانام نسخه و tag
پیوند به نام نسخه و tag| چیز | نام |
|---|---|
| tag در git (را نگهدارنده push میکند) | 1.0.0 (عدد ساده، بدون v) |
tag ایمیج و version در یادداشتها |
1.0.0 |
workflow فقط برای tag به شکل X.Y.Z شروع میشود و وقتی tag با فایل VERSION فرق دارد متوقف میشود.
tagهای ایمیج
پیوند به tagهای ایمیجهر نسخه tag نسخهٔ خودش و :latest را push میکند.
یک نسخه را پس بگیرید
پیوند به یک نسخه را پس بگیرید- نسخهٔ بعدی را همراه با رفع مشکل push کنید.
- نسخهٔ بد را در فهرست بهروزرسانی علامت بزنید تا نصبها آن را پیشنهاد ندهند.
- tag را نگه دارید.
اگر کار نکرد
پیوند به اگر کار نکردنشانه. notes.py --check با کد 1 خارج میشود.
علت. فایل یادداشتها یک قانون را شکسته است. پیام نام خط را میگوید.
راهحل. فایل یادداشتها را ویرایش کنید، نه فایلهای releases/out را، و دوباره اجرا کنید.
نشانه. workflow با VERSION says متوقف میشود.
علت. tag و فایل VERSION فرق دارند.
راهحل. VERSION را روی main درست کنید و tag نسخهٔ بعدی را push کنید.
برای حرفهایها
پیوند به برای حرفهایهافایل یادداشتهای نسخه
هر متن نسخه از یک فایل ساخته میشود. آنچه را میسازد هرگز با دست ویرایش نکنید.
| فیلد | محتوا |
|---|---|
version |
X.Y.Z ساده |
theme |
یک خط |
images |
فهرست {registry, name}. فقط Docker Hub به نام holyarrs/holyarrs |
docs_url |
اختیاری. خالی یعنی پیوند Docs نباشد |
[[highlights]] |
دقیقاً 3 تا، هر کدام با line، issues و shot. issueهای آنها در هیچ خط گروهی نمیآیند |
[groups] |
خطها برای هر بخش. New پیشفرض است. بقیه با Changed: ، Fixed: یا Docs: شروع میشوند. هر کدام با issue خودش تمام میشود، مثل (#46). بخشی که کمتر از 3 خط دارد زیر Also new میرود |
| اختیاری | [before_you_update] (breaking، manual_steps، backup، rollback)، security، known_issues، credits، [stats]. بخشهای خالی پنهان میشوند |
نام کاربری GitHub را فقط وقتی بنویسید که معلوم است، در فایل یادداشتها یا در releases/credits-map.json.
ترتیب متن: theme، Highlights، بخشها (Requests، Library، Downloads، Indexers، Accounts، Health، Setup، Install)، Also new، Security، Known issues، Before you update، Image، Thanks، خط آمار.
خروجی در releases/out/<version>/ |
کاربرد |
|---|---|
changelog.md |
ورودی changelog |
github.md |
متن نسخه در GitHub |
update-notes.json |
یادداشتهایی که برنامه نشان میدهد |
reddit.txt |
پست Reddit |
discord-dm.txt، discord-announce.md |
Discord. هر کدام زیر 1,000 نویسه میماند |
roadmap-card.json |
کارت نقشهٔ راه |
notes.py این گزینهها را میگیرد: --file (فایل یادداشت دیگر)، --map (نقشهٔ credits دیگر)، --out (پوشهٔ خروجی دیگر) و --date. --check دربارهٔ خطهای بلند و تکرارهای نزدیک هشدار میدهد.
workflow ایمیج
workflow به نام HolyArrs - Release وقتی tag نسخه push شود شروع میشود. سه مرحله دارد:
- ایمیج را برای
linux/amd64،linux/arm64وlinux/arm/v7بسازید و با tag نسخه وlatestpush کنید. - توضیحات Docker Hub را از
README.mdبهروز کنید. - نسخهٔ GitHub را با بخش همین نسخه از
CHANGELOG.mdمنتشر کنید.
فهرست بهروزرسانی
برنامه یک فهرست بهروزرسانی امضاشده را میخواند. هر نسخه ورودی خودش را اضافه و امضا میکند. کلید امضا هرگز در ریپو نمیآید. HolyArrs فهرستی را که نتواند تأیید کند رد میکند.
بعد از انتشار، بررسی کنید برچسب نسخهٔ ایمیج با tag یکی باشد، و روز اول issueهای جدید را زیر نظر داشته باشید:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsقالب آزمایشی Unraid
deploy/release/nas-template.py یک قالب کاربری Unraid برای یک ایمیج دقیق مینویسد. چیزی pull، نصب یا منتشر نمیکند.
python deploy/release/nas-template.py --image 'holyarrs/holyarrs@sha256:<digest>' --config '/mnt/<pool>/appdata/holyarrs-test' --movies /mnt/user/holyarrs-test-data/movies --downloads /mnt/user/holyarrs-test-data/downloads --port 6262 --output holyarrs-test.xml<digest> و <pool> را جایگزین کنید.
| فلگ | نکته |
|---|---|
--image |
digest مانیفست registry، نه شناسهٔ ایمیج Docker |
--config |
مسیر یک pool. ابزار /mnt/user و /mnt/user0 را رد میکند |
--movies، --tv، --music، --downloads |
اختیاری. مسیرهای جدا، mountهای جدا هستند، پس وارد کردن کپی میکند |
--port |
پیشفرض 6262 است |
--allowed-hosts |
اختیاری، نام میزبانها با کاما جدا میشوند |
--output |
فایل XML که نوشته میشود |
قالب PUID=99، PGID=100 و UMASK=022 را تنظیم میکند. به آن حساب دسترسی نوشتن روی رسانهٔ آزمایشی بدهید. فایل را در /boot/config/plugins/dockerMan/templates-user/ بگذارید و آن را در Docker > Add Container > Template (افزودن کانتینر > قالب) انتخاب کنید.
صفحههای مرتبط
پیوند به صفحههای مرتبطHolyArrs رایگان است. اگر در وقتتان صرفهجویی کرد، در GitHub به آن ستاره بدهید، حمایت مالی کنید یا برای من یک قهوه بخرید.