Hoppa till innehåll

Utgivning

Expert

Gör en testad build till en version. Den här sidan är för underhållare.

  • Varje kontroll i Testning går igenom, inklusive en full end-to-end-körning och de långa körningarna och felkörningarna.
  • CHANGELOG.md har den nya versionen.
  • Python 3 är installerat för skripten för utgivning.
  1. Skriv releases/notes-<version>.toml, till exempel releases/notes-1.0.0.toml. Se Fil med versionsanteckningar.

  2. Kontrollera den:

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

    Du ska inte se några fel. Ett förbjudet ord, ett långt tankstreck, ett datum, lanseringssnack eller en upprepad höjdpunkt ger exit-kod 1.

  3. Bygg texterna för versionen:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Du ska hitta 7 filer i releases/out/1.0.0/.

  4. Bygg imagen och starta den med en ny konfigurationsmapp:

    Terminal window
    docker build --file deploy/Dockerfile .

    Du ska se guiden vid första start.

  5. Kör varje kontroll i Testning på din dator. Testerna körs lokalt, inte på GitHub.

  6. Lämna över versionen till underhållaren. Underhållaren pushar versionstaggen på main, och det startar utgivningen.

Namn på versioner och taggar

Länk till Namn på versioner och taggar
Sak Namn
Git-tag (pushas av underhållaren) 1.0.0 (bara siffror, inget v)
Image-tag och version i anteckningarna 1.0.0

Arbetsflödet startar bara för en X.Y.Z-tag och stannar när taggen skiljer sig från filen VERSION.

Varje version pushar sin versionstag och :latest.

Ta tillbaka en version

Länk till Ta tillbaka en version
  1. Pusha nästa version med rättningen.
  2. Markera den dåliga versionen i uppdateringslistan så att installationer inte erbjuder den.
  3. Behåll taggen.

Symptom. notes.py --check ger exit-kod 1. Orsak. Anteckningsfilen bryter mot en regel. Meddelandet nämner raden. Lösning. Ändra anteckningsfilen, aldrig filerna i releases/out, och kör igen.

Symptom. Arbetsflödet stannar med VERSION says. Orsak. Taggen och filen VERSION skiljer sig. Lösning. Rätta VERSION på main och pusha nästa versionstag.

Fil med versionsanteckningar

Varje text för en version kommer från en enda fil. Redigera aldrig för hand det den bygger.

Fält Innehåll
version Bara X.Y.Z
theme En rad
images Lista med {registry, name}. Bara Docker Hub holyarrs/holyarrs
docs_url Valfri. Tom betyder ingen länk till dokumentationen
[[highlights]] Exakt 3, var och en med line, issues och shot. Deras ärenden syns inte i någon grupprad
[groups] Rader per plats. Nytt är standard. Andra börjar med Changed: , Fixed: eller Docs: . Varje rad slutar med sitt ärende, till exempel (#46). En plats med färre än 3 rader hamnar under Också nytt
Valfritt [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Tomma delar döljs

Använd ett GitHub-användarnamn bara när det är känt, i anteckningsfilen eller i releases/credits-map.json.

Ordning i texten: tema, höjdpunkter, platser (Förfrågningar, Bibliotek, Nedladdningar, Källor, Konton, Hälsa, Konfiguration, Installation), Också nytt, Säkerhet, Kända problem, Innan du uppdaterar, Image, Tack, statistikrad.

Utdata i releases/out/<version>/ Används till
changelog.md Posten i ändringsloggen
github.md Texten för versionen på GitHub
update-notes.json Anteckningarna som appen visar
reddit.txt Inlägget på Reddit
discord-dm.txt, discord-announce.md Discord. Var och en håller sig under 1 000 tecken
roadmap-card.json Kortet på färdplanen

notes.py tar --file (en annan anteckningsfil), --map (en annan kreditkarta), --out (en annan utdatamapp) och --date. --check varnar för långa rader och nästan upprepade rader.

Arbetsflödet för imagen

Arbetsflödet HolyArrs - Release startar när en versionstag pushas. Det har tre steg:

  1. Bygg och pusha imagen för linux/amd64, linux/arm64 och linux/arm/v7, med versionstaggen och latest.
  2. Uppdatera beskrivningen på Docker Hub från README.md.
  3. Publicera versionen på GitHub med den här versionens avsnitt i CHANGELOG.md.
Uppdateringslista

Appen läser en signerad uppdateringslista. Varje version lägger till sin post och signerar den. Signeringsnyckeln hamnar aldrig i repot. HolyArrs vägrar en lista som det inte kan verifiera.

Efter en version kontrollerar du att imagens versionsetikett matchar taggen, och följer nya ärenden under det första dygnet:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Testmall för Unraid

deploy/release/nas-template.py skriver en användarmall för Unraid för en exakt image. Den hämtar, installerar och publicerar ingenting.

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

Byt ut <digest> och <pool>.

Flagga Anmärkningar
--image Registrets manifest-digest, inte ett Docker-image-ID
--config En sökväg i en pool. Verktyget vägrar /mnt/user och /mnt/user0
--movies, --tv, --music, --downloads Valfria. Separata sökvägar är separata monteringar, så importer kopierar
--port Standard är 6262
--allowed-hosts Valfri, värdnamn separerade med komma
--output XML-filen som skrivs

Mallen sätter PUID=99, PGID=100 och UMASK=022. Ge det kontot skrivrättigheter till testmedierna. Lägg filen i /boot/config/plugins/dockerMan/templates-user/ och välj den under Docker > Add Container > Template (lägg till container > mall).

HolyArrs är gratis. Om det sparade dig tid kan du ge det en stjärna på GitHub, sponsra det eller bjuda mig på en kaffe.