Ga naar inhoud

Versies maken

Gevorderd

Maak van een geteste build een versie. Deze pagina is voor beheerders.

  • Elke controle in Testen slaagt, inclusief een volledige end-to-end-run en de lange runs en foutruns.
  • CHANGELOG.md bevat de nieuwe versie.
  • Python 3 is geïnstalleerd voor de releasescripts.

Een versie voorbereiden

Link naar Een versie voorbereiden
  1. Schrijf releases/notes-<version>.toml, bijvoorbeeld releases/notes-1.0.0.toml. Zie Bestand met releasenotities.

  2. Controleer het:

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

    Je ziet geen fouten. Een verboden woord, een gedachtestreepje, een datum, lanceringspraat of een herhaalde highlight geeft exitcode 1.

  3. Bouw de releaseteksten:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Je vindt 7 bestanden in releases/out/1.0.0/.

  4. Bouw de image en start hem met een verse configuratiemap:

    Terminal window
    docker build --file deploy/Dockerfile .

    Je ziet de wizard voor de eerste start.

  5. Voer elke controle in Testen uit op je computer. Tests draaien lokaal, niet op GitHub.

  6. Geef de versie door aan de beheerder. De beheerder pusht de versietag op main en daarmee start de release.

Namen van versies en tags

Link naar Namen van versies en tags
Wat Naam
Git-tag (gepusht door de beheerder) 1.0.0 (gewone cijfers, geen v)
Image-tag en version in de notities 1.0.0

De workflow start alleen voor een X.Y.Z-tag en stopt als de tag afwijkt van het VERSION-bestand.

Elke versie pusht zijn versietag en :latest.

Een versie terugdraaien

Link naar Een versie terugdraaien
  1. Push de volgende versie met de fix.
  2. Markeer de slechte versie in de updatelijst, zodat installaties hem niet aanbieden.
  3. Houd de tag.

Symptoom. notes.py --check geeft exitcode 1. Oorzaak. Het notitiebestand overtreedt een regel. De melding noemt de regel. Oplossing. Pas het notitiebestand aan, nooit de bestanden in releases/out, en voer het opnieuw uit.

Symptoom. De workflow stopt met VERSION says. Oorzaak. De tag en het VERSION-bestand verschillen. Oplossing. Corrigeer VERSION op main en push de volgende versietag.

Bestand met releasenotities

Elke releasetekst komt uit één bestand. Pas wat het bouwt nooit met de hand aan.

Veld Inhoud
version Gewone X.Y.Z
theme Eén regel
images Lijst van {registry, name}. Alleen Docker Hub holyarrs/holyarrs
docs_url Optioneel. Leeg betekent geen link naar de docs
[[highlights]] Precies 3, elk met line, issues en shot. Hun issues staan in geen enkele groepsregel
[groups] Regels per plek. New is de standaard. Andere beginnen met Changed: , Fixed: of Docs: . Elke regel eindigt met zijn issue, zoals (#46). Een plek met minder dan 3 regels komt onder Also new
Optioneel [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Lege onderdelen blijven verborgen

Gebruik een GitHub-gebruikersnaam alleen als die bekend is, in het notitiebestand of in releases/credits-map.json.

Volgorde van de tekst: thema, Highlights, plekken (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, regel met statistieken.

Uitvoer in releases/out/<version>/ Gebruikt voor
changelog.md De regel in de changelog
github.md De tekst van de GitHub-release
update-notes.json De notities die de app toont
reddit.txt De Reddit-post
discord-dm.txt, discord-announce.md Discord. Elk blijft onder 1.000 tekens
roadmap-card.json De roadmapkaart

notes.py kent --file (een ander notitiebestand), --map (een andere creditskaart), --out (een andere uitvoermap) en --date. --check waarschuwt bij lange regels en bijna-herhalingen.

De image-workflow

De workflow HolyArrs - Release start als een versietag wordt gepusht. Hij heeft drie stappen:

  1. De image bouwen en pushen voor linux/amd64, linux/arm64 en linux/arm/v7, met de versietag en latest.
  2. De beschrijving op Docker Hub bijwerken vanuit README.md.
  3. De GitHub-release publiceren met het stuk van CHANGELOG.md voor deze versie.
Updatelijst

De app leest een ondertekende updatelijst. Elke versie voegt zijn eigen item toe en ondertekent het. De ondertekeningssleutel komt nooit in de repo. HolyArrs weigert een lijst die het niet kan verifiëren.

Controleer na een versie dat het versielabel van de image overeenkomt met de tag, en let de eerste dag op nieuwe issues:

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

deploy/release/nas-template.py schrijft een Unraid-gebruikerstemplate voor precies één image. Het haalt niets op, installeert niets en publiceert niets.

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

Vervang <digest> en <pool>.

Vlag Opmerkingen
--image De manifest-digest van de registry, niet een Docker-image-ID
--config Een pad in een pool. De tool weigert /mnt/user en /mnt/user0
--movies, --tv, --music, --downloads Optioneel. Aparte paden zijn aparte mounts, dus imports kopiëren
--port Standaard 6262
--allowed-hosts Optioneel, hostnamen gescheiden door komma’s
--output Het XML-bestand om te schrijven

De template zet PUID=99, PGID=100 en UMASK=022. Geef die gebruiker schrijftoegang tot de testmedia. Zet het bestand in /boot/config/plugins/dockerMan/templates-user/ en kies het onder Docker > Add Container > Template (container toevoegen > template).

Gerelateerde pagina’s

Link naar Gerelateerde pagina’s

HolyArrs is gratis. Heeft het je tijd bespaard, geef het een ster op GitHub, sponsor het of trakteer me op een kop koffie.