Lumaktaw sa nilalaman

Releasing

Eksperto

Gawing release ang isang nasubukang build. Para sa mga maintainer ang page na ito.

  • Pumapasa ang bawat check sa Testing, kasama ang buong end-to-end na takbo at ang mahahaba at fault na takbo.
  • May bagong bersyon na ang CHANGELOG.md.
  • Naka-install ang Python 3 para sa mga release script.
  1. Isulat ang releases/notes-<version>.toml, halimbawa releases/notes-1.0.0.toml. Tingnan ang Release notes file.

  2. Suriin ito:

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

    Dapat wala kang makitang error. Ang bawal na salita, em dash, petsa, usapang paglulunsad o inuulit na highlight ay nagpapa-exit ng 1.

  3. Buuin ang mga teksto ng release:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Dapat may makita kang 7 file sa releases/out/1.0.0/.

  4. I-build ang image at simulan ito sa bagong config folder:

    Terminal window
    docker build --file deploy/Dockerfile .

    Dapat makita mo ang wizard sa unang takbo.

  5. Patakbuhin ang bawat check sa Testing sa computer mo. Lokal na tumatakbo ang mga test, hindi sa GitHub.

  6. Ibigay ang bersyon sa maintainer. Ipu-push ng maintainer ang tag ng bersyon sa main, at iyon ang magsisimula ng release.

Bagay Pangalan
Git tag (ipinu-push ng maintainer) 1.0.0 (payak na numero, walang v)
Tag ng image at version ng mga note 1.0.0

Nagsisimula lang ang workflow para sa tag na X.Y.Z at humihinto kapag iba ang tag sa file na VERSION.

Bawat release ay nagpu-push ng tag ng bersyon nito at :latest.

  1. I-push ang susunod na bersyon na may ayos.
  2. Markahan ang masamang bersyon sa update list para hindi ito ialok ng mga install.
  3. Panatilihin ang tag.

Sintomas. Nag-e-exit ng 1 ang notes.py --check. Dahilan. Sinisira ng notes file ang isang patakaran. Pinangangalanan ng mensahe ang linya. Solusyon. I-edit ang notes file, hindi kailanman ang mga file sa releases/out, at patakbuhin muli.

Sintomas. Humihinto ang workflow na may VERSION says. Dahilan. Magkaiba ang tag at ang file na VERSION. Solusyon. Ayusin ang VERSION sa main at i-push ang susunod na tag ng bersyon.

Release notes file

Galing sa isang file ang bawat teksto ng release. Huwag kailanman i-edit nang mano-mano ang nabubuo nito.

Field Nilalaman
version Payak na X.Y.Z
theme Isang linya
images Listahan ng {registry, name}. Docker Hub holyarrs/holyarrs lang
docs_url Opsyonal. Ang walang laman ay walang link sa Docs
[[highlights]] Eksaktong 3, bawat isa ay may line, issues at shot. Ang mga issue nila ay hindi lumalabas sa linya ng alinmang grupo
[groups] Mga linya bawat lugar. Ang New ang default. Ang iba ay nagsisimula sa Changed: , Fixed: o Docs: . Bawat isa ay nagtatapos sa issue nito, tulad ng (#46). Ang lugar na wala pang 3 linya ay napupunta sa Also new
Opsyonal [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Nakatago ang mga bahaging walang laman

Gumamit lang ng GitHub login kapag alam ito, sa notes file o sa releases/credits-map.json.

Ayos ng katawan: theme, Highlights, mga lugar (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, linya ng stats.

Output sa releases/out/<version>/ Gamit
changelog.md Ang entry ng changelog
github.md Ang katawan ng GitHub release
update-notes.json Ang mga note na ipinapakita ng app
reddit.txt Ang post sa Reddit
discord-dm.txt, discord-announce.md Discord. Bawat isa ay nananatili sa ilalim ng 1,000 character
roadmap-card.json Ang card ng roadmap

Tumatanggap ang notes.py ng --file (ibang notes file), --map (ibang credits map), --out (ibang output folder) at --date. Nagbababala ang --check sa mahahabang linya at halos magkaparehong linya.

Ang workflow ng image

Nagsisimula ang workflow na HolyArrs - Release kapag na-push ang tag ng bersyon. May tatlong hakbang ito:

  1. I-build at i-push ang image para sa linux/amd64, linux/arm64 at linux/arm/v7, na may tag ng bersyon at latest.
  2. I-update ang paglalarawan sa Docker Hub mula sa README.md.
  3. I-publish ang GitHub release gamit ang seksyon ng CHANGELOG.md para sa bersyong ito.
Update list

Nagbabasa ang app ng pirmadong update list. Idinadagdag ng bawat release ang entry nito at pinipirmahan ito. Hindi kailanman napupunta sa repo ang signing key. Tinatanggihan ng HolyArrs ang listahang hindi nito ma-verify.

Pagkatapos ng release, tiyaking tugma ang label ng bersyon ng image sa tag, at bantayan ang mga bagong issue sa unang araw:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Test template para sa Unraid

Ang deploy/release/nas-template.py ay nagsusulat ng Unraid user template para sa isang eksaktong image. Wala itong ipinu-pull, ini-install o pini-publish.

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

Palitan ang <digest> at <pool>.

Flag Tala
--image Ang digest ng registry manifest, hindi ang ID ng Docker image
--config Isang path ng pool. Tinatanggihan ng tool ang /mnt/user at /mnt/user0
--movies, --tv, --music, --downloads Opsyonal. Magkakahiwalay na mount ang magkakahiwalay na path, kaya nagkokopya ang mga import
--port Ang default ay 6262
--allowed-hosts Opsyonal, mga host name na pinaghihiwalay ng kuwit
--output Ang XML file na isusulat

Itinatakda ng template ang PUID=99, PGID=100 at UMASK=022. Bigyan ng permiso sa pagsulat ang account na iyon sa test media. Ilagay ang file sa /boot/config/plugins/dockerMan/templates-user/ at piliin ito sa ilalim ng Docker > Add Container > Template (Docker > magdagdag ng container > template).

Libre ang HolyArrs. Kung nakatipid ito ng oras mo, bigyan ito ng star sa GitHub, i-sponsor ito o ibili ako ng kape.