Versies maken
Gevorderd
Maak van een geteste build een versie. Deze pagina is voor beheerders.
Voor je begint
Link naar Voor je begint- Elke controle in Testen slaagt, inclusief een volledige end-to-end-run en de lange runs en foutruns.
CHANGELOG.mdbevat de nieuwe versie.- Python 3 is geïnstalleerd voor de releasescripts.
Een versie voorbereiden
Link naar Een versie voorbereiden-
Schrijf
releases/notes-<version>.toml, bijvoorbeeldreleases/notes-1.0.0.toml. Zie Bestand met releasenotities. -
Controleer het:
Terminal window python deploy/release/notes.py 1.0.0 --checkJe ziet geen fouten. Een verboden woord, een gedachtestreepje, een datum, lanceringspraat of een herhaalde highlight geeft exitcode 1.
-
Bouw de releaseteksten:
Terminal window python deploy/release/notes.py 1.0.0Je vindt 7 bestanden in
releases/out/1.0.0/. -
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.
-
Voer elke controle in Testen uit op je computer. Tests draaien lokaal, niet op GitHub.
-
Geef de versie door aan de beheerder. De beheerder pusht de versietag op main en daarmee start de release.
Keuzes
Link naar KeuzesNamen 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.
Image-tags
Link naar Image-tagsElke versie pusht zijn versietag en :latest.
Een versie terugdraaien
Link naar Een versie terugdraaien- Push de volgende versie met de fix.
- Markeer de slechte versie in de updatelijst, zodat installaties hem niet aanbieden.
- Houd de tag.
Als het niet werkt
Link naar Als het niet werktSymptoom. 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.
Voor gevorderden
Link naar Voor gevorderdenBestand 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:
- De image bouwen en pushen voor
linux/amd64,linux/arm64enlinux/arm/v7, met de versietag enlatest. - De beschrijving op Docker Hub bijwerken vanuit
README.md. - De GitHub-release publiceren met het stuk van
CHANGELOG.mdvoor 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:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsUnraid-testtemplate
deploy/release/nas-template.py schrijft een Unraid-gebruikerstemplate voor precies één image. Het haalt niets op, installeert niets en publiceert niets.
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.xmlVervang <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’sHolyArrs is gratis. Heeft het je tijd bespaard, geef het een ster op GitHub, sponsor het of trakteer me op een kop koffie.