Към съдържанието

Публикуване на версии

Експерт

Превърни тестван build във версия. Тази страница е за поддържащите.

  • Всяка проверка от Тестване минава, включително пълно end-to-end пускане и дългите пускания и пусканията със срив.
  • CHANGELOG.md има новата версия.
  • Python 3 е инсталиран за скриптовете за версии.
  1. Напиши releases/notes-<version>.toml, например releases/notes-1.0.0.toml. Виж Файл с бележките към версията.

  2. Провери го:

    Terminal window
    python deploy/release/notes.py 1.0.0 --check

    Не трябва да виждаш грешки. Забранена дума, дълго тире, дата, приказки за старта или повторен проблем в акцентите връща код 1.

  3. Направи текстовете за версията:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Трябва да намериш 7 файла в releases/out/1.0.0/.

  4. Build-ни образа и го стартирай с чиста папка с конфигурация:

    Terminal window
    docker build --file deploy/Dockerfile .

    Трябва да видиш съветника при първо стартиране.

  5. Пусни всяка проверка от Тестване на твоя компютър. Тестовете се пускат локално, не в GitHub.

  6. Предай версията на поддържащия. Той праща тага на версията към main и това стартира версията.

Имена на версии и тагове

Връзка към Имена на версии и тагове
Нещо Име
Git таг (праща го поддържащият) 1.0.0 (обикновени числа, без v)
Таг на образа и version в бележките 1.0.0

Работният процес стартира само за таг във вида X.Y.Z и спира, когато тагът се различава от файла VERSION.

Всяка версия праща своя таг на версията и :latest.

  1. Пусни следващата версия с поправката.
  2. Маркирай лошата версия в списъка с актуализации, за да не я предлагат инсталациите.
  3. Остави тага.

Проблем. 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. Техните проблеми не се появяват в ред на група
[groups] Редове за всяко място. New е по подразбиране. Останалите започват с Changed: , Fixed: или Docs: . Всеки завършва с проблема си, например (#46). Място с под 3 реда отива под Also new
По избор [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Празните части се крият

Слагай GitHub потребителско име само когато е известно, във файла с бележки или в releases/credits-map.json.

Ред на тялото: тема, 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 стартира, когато се прати таг на версия. Има три стъпки:

  1. Build-ва и праща образа за linux/amd64, linux/arm64 и linux/arm/v7, с тага на версията и latest.
  2. Обновява описанието в Docker Hub от README.md.
  3. Публикува версията в GitHub със секцията от CHANGELOG.md за тази версия.
Списък с актуализации

Приложението чете подписан списък с актуализации. Всяка версия добавя своя запис и го подписва. Ключът за подписване никога не влиза в хранилището. HolyArrs отхвърля списък, който не може да провери.

След версия провери дали етикетът за версия на образа съвпада с тага и следи новите проблеми през първия ден:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Тестов шаблон за Unraid

deploy/release/nas-template.py пише потребителски шаблон за Unraid за един точен образ. Той нищо не тегли, не инсталира и не публикува.

Terminal window
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 на манифеста в регистъра, не ID на образ на Docker
--config Път в пул. Инструментът отказва /mnt/user и /mnt/user0
--movies, --tv, --music, --downloads По избор. Отделните пътища са отделни монтирания, така че импортирането копира
--port По подразбиране 6262
--allowed-hosts По избор, имена на host, разделени със запетая
--output XML файлът, който се записва

Шаблонът задава PUID=99, PGID=100 и UMASK=022. Дай на този акаунт право за запис върху тестовата медия. Постави файла в /boot/config/plugins/dockerMan/templates-user/ и го избери от Docker > Add Container > Template (Docker > Добави контейнер > Шаблон).

HolyArrs е безплатен. Ако ти е спестил време, сложи му звезда в GitHub, подкрепи го или почерпи ме с кафе.