Випуск версій
Для досвідчених
Перетвори перевірену збірку на версію. Ця сторінка для мейнтейнерів.
Перш ніж почати
Посилання на Перш ніж почати- Усі перевірки зі сторінки Тестування проходять, зокрема повний наскрізний запуск, а також довгі запуски та запуски зі збоями.
- У
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Помилок бути не має. Заборонене слово, довге тире, дата, розмови про запуск або повторення issue в основних пунктах завершують перевірку з кодом 1.
-
Збери тексти версії:
Terminal window python deploy/release/notes.py 1.0.0У
releases/out/1.0.0/має з’явитися 7 файлів. -
Збери образ і запусти його на свіжій теці конфігурації:
Terminal window docker build --file deploy/Dockerfile .Ти маєш побачити майстер першого запуску.
-
Запусти на своєму комп’ютері всі перевірки зі сторінки Тестування. Тести виконуються локально, не на GitHub.
-
Передай версію мейнтейнеру. Мейнтейнер надсилає тег версії в main, і це запускає випуск.
Варіанти
Посилання на ВаріантиНазви версій і тегів
Посилання на Назви версій і тегів| Що | Назва |
|---|---|
| Тег Git (його надсилає мейнтейнер) | 1.0.0 (прості числа, без v) |
Тег образу і version у нотатках |
1.0.0 |
Робочий процес запускається лише для тега виду X.Y.Z і зупиняється, коли тег відрізняється від файлу VERSION.
Теги образу
Посилання на Теги образуКожна версія надсилає свій тег версії і :latest.
Відклич версію
Посилання на Відклич версію- Надішли наступну версію з виправленням.
- Познач невдалу версію у списку оновлень, щоб установки її не пропонували.
- Залиш тег.
Якщо не працює
Посилання на Якщо не працюєОзнака. notes.py --check завершується з кодом 1.
Причина. Файл нотаток порушує правило. Повідомлення називає рядок.
Рішення. Виправ файл нотаток, а не файли в releases/out, і запусти ще раз.
Ознака. Робочий процес зупиняється з повідомленням VERSION says.
Причина. Тег і файл VERSION не збігаються.
Рішення. Виправ VERSION у main і надішли тег наступної версії.
Для досвідчених
Посилання на Для досвідченихФайл нотаток до версії
Кожен текст версії береться з одного файлу. Ніколи не редагуй вручну те, що він збирає.
| Поле | Вміст |
|---|---|
version |
Просто X.Y.Z |
theme |
Один рядок |
images |
Список {registry, name}. Лише Docker Hub holyarrs/holyarrs |
docs_url |
Необов’язкове. Порожнє означає, що посилання на документацію немає |
[[highlights]] |
Рівно 3, кожен із line, issues і shot. Їхні issues не з’являються в жодному рядку групи |
[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 |
Запис у списку змін |
github.md |
Текст випуску на GitHub |
update-notes.json |
Нотатки, які показує застосунок |
reddit.txt |
Допис на Reddit |
discord-dm.txt, discord-announce.md |
Discord. Кожен лишається коротшим за 1000 символів |
roadmap-card.json |
Картка дорожньої карти |
notes.py приймає --file (інший файл нотаток), --map (іншу мапу подяк), --out (іншу теку виводу) і --date. --check попереджає про довгі рядки та майже повтори.
Робочий процес образу
Робочий процес HolyArrs - Release запускається, коли надіслано тег версії. Він має три кроки:
- Зібрати й надіслати образ для
linux/amd64,linux/arm64іlinux/arm/v7з тегом версії таlatest. - Оновити опис на Docker Hub із
README.md. - Опублікувати випуск на GitHub із розділом
CHANGELOG.mdдля цієї версії.
Список оновлень
Застосунок читає підписаний список оновлень. Кожна версія додає до нього свій запис і підписує його. Ключ підпису ніколи не потрапляє в репозиторій. HolyArrs відмовляється від списку, який не може перевірити.
Після випуску перевір, що мітка версії образу збігається з тегом, і першу добу стеж за новими issues:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsТестовий шаблон для Unraid
deploy/release/nas-template.py пише користувацький шаблон Unraid для одного точного образу. Він нічого не завантажує, не встановлює і не публікує.
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 |
Дайджест маніфесту в реєстрі, а не ID образу Docker |
--config |
Шлях у пулі. Інструмент відмовляється від /mnt/user і /mnt/user0 |
--movies, --tv, --music, --downloads |
Необов’язкові. Окремі шляхи — це окремі монтування, тож імпорт копіює |
--port |
За замовчуванням 6262 |
--allowed-hosts |
Необов’язковий, імена хостів через кому |
--output |
XML-файл, який треба записати |
Шаблон задає PUID=99, PGID=100 і UMASK=022. Дай цьому обліковому запису доступ на запис до тестових медіа. Поклади файл у /boot/config/plugins/dockerMan/templates-user/ і обери його в Docker > Add Container > Template (Docker > додати контейнер > шаблон).
Пов’язане
Посилання на Пов’язанеHolyArrs безкоштовний. Якщо він заощадив тобі час, познач його зіркою на GitHub, підтримай проєкт або пригости мене кавою.