Publicarea versiunilor
Expert
Transformă un build testat într-o versiune. Pagina asta e pentru mentenanți.
Înainte să începi
Link către Înainte să începi- Toate verificările din Testare trec, inclusiv o rulare end-to-end completă și rulările lungi și cele pentru defecte.
CHANGELOG.mdare versiunea nouă.- Python 3 e instalat pentru scripturile de versiune.
Pregătește o versiune
Link către Pregătește o versiune-
Scrie
releases/notes-<version>.toml, de exemplureleases/notes-1.0.0.toml. Vezi Fișierul cu note de versiune. -
Verifică-l:
Terminal window python deploy/release/notes.py 1.0.0 --checkAr trebui să nu vezi nicio eroare. Un cuvânt interzis, o liniuță lungă (em dash), o dată, vorbe despre lansare sau un punct forte repetat fac scriptul să iasă cu codul 1.
-
Construiește textele versiunii:
Terminal window python deploy/release/notes.py 1.0.0Ar trebui să găsești 7 fișiere în
releases/out/1.0.0/. -
Construiește imaginea și pornește-o pe un dosar de configurare nou:
Terminal window docker build --file deploy/Dockerfile .Ar trebui să vezi asistentul de la prima pornire.
-
Rulează pe aparatul tău toate verificările din Testare. Testele rulează local, nu pe GitHub.
-
Dă versiunea mentenantului. Mentenantul trimite tag-ul versiunii pe main, iar asta pornește versiunea.
Alegeri
Link către AlegeriNume de versiune și de tag
Link către Nume de versiune și de tag| Lucru | Nume |
|---|---|
| Tag Git (trimis de mentenant) | 1.0.0 (numere simple, fără v) |
Eticheta imaginii și version din note |
1.0.0 |
Fluxul de lucru pornește doar pentru un tag X.Y.Z și se oprește când tag-ul diferă de fișierul VERSION.
Etichetele imaginii
Link către Etichetele imaginiiFiecare versiune trimite eticheta versiunii ei și :latest.
Retrage o versiune
Link către Retrage o versiune- Trimite versiunea următoare cu reparația.
- Marchează versiunea proastă în lista de actualizări, ca instalările să nu o mai ofere.
- Păstrează tag-ul.
Dacă nu merge
Link către Dacă nu mergeSimptom. notes.py --check iese cu codul 1.
Cauză. Fișierul de note încalcă o regulă. Mesajul numește linia.
Soluție. Editează fișierul de note, niciodată fișierele din releases/out, și rulează din nou.
Simptom. Fluxul de lucru se oprește cu VERSION says.
Cauză. Tag-ul și fișierul VERSION diferă.
Soluție. Repară VERSION pe main și trimite tag-ul versiunii următoare.
Pentru experți
Link către Pentru experțiFișierul cu note de versiune
Fiecare text de versiune vine dintr-un singur fișier. Nu edita niciodată de mână ce construiește el.
| Câmp | Conținut |
|---|---|
version |
X.Y.Z simplu |
theme |
O linie |
images |
Listă de {registry, name}. Doar Docker Hub holyarrs/holyarrs |
docs_url |
Opțional. Gol înseamnă fără link spre documentație |
[[highlights]] |
Exact 3, fiecare cu line, issues și shot. Problemele lor nu apar în nicio linie de grup |
[groups] |
Linii pe loc. Nou e implicit. Celelalte încep cu Changed: , Fixed: sau Docs: . Fiecare se termină cu problema ei, de exemplu (#46). Un loc cu sub 3 linii merge la Also new |
| Opțional | [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Părțile goale sunt ascunse |
Folosește un nume de utilizator GitHub doar când e cunoscut, în fișierul de note sau în releases/credits-map.json.
Ordinea corpului: temă, Highlights, locuri (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, linia de statistici.
Ieșire în releases/out/<version>/ |
Folosită pentru |
|---|---|
changelog.md |
Intrarea din jurnalul de modificări |
github.md |
Corpul versiunii de pe GitHub |
update-notes.json |
Notele pe care le arată aplicația |
reddit.txt |
Postarea de pe Reddit |
discord-dm.txt, discord-announce.md |
Discord. Fiecare rămâne sub 1.000 de caractere |
roadmap-card.json |
Cardul din foaia de parcurs |
notes.py primește --file (alt fișier de note), --map (altă hartă de credite), --out (alt dosar de ieșire) și --date. --check avertizează la linii lungi și la repetări apropiate.
Fluxul de lucru al imaginii
Fluxul HolyArrs - Release pornește când se trimite un tag de versiune. Are trei pași:
- Construiește și trimite imaginea pentru
linux/amd64,linux/arm64șilinux/arm/v7, cu eticheta versiunii șilatest. - Actualizează descrierea de pe Docker Hub din
README.md. - Publică versiunea pe GitHub cu secțiunea din
CHANGELOG.mda acestei versiuni.
Lista de actualizări
Aplicația citește o listă de actualizări semnată. Fiecare versiune își adaugă intrarea și o semnează. Cheia de semnare nu intră niciodată în depozit. HolyArrs refuză o listă pe care nu o poate verifica.
După o versiune, verifică dacă eticheta de versiune a imaginii se potrivește cu tag-ul și urmărește problemele noi în prima zi:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsȘablonul de test pentru Unraid
deploy/release/nas-template.py scrie un șablon de utilizator Unraid pentru o singură imagine exactă. Nu descarcă, nu instalează și nu publică nimic.
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Înlocuiește <digest> și <pool>.
| Opțiune | Note |
|---|---|
--image |
Rezumatul manifestului din registru, nu un ID de imagine Docker |
--config |
O cale dintr-un pool. Unealta refuză /mnt/user și /mnt/user0 |
--movies, --tv, --music, --downloads |
Opționale. Căi separate înseamnă montări separate, așa că importurile copiază |
--port |
Implicit 6262 |
--allowed-hosts |
Opțional, nume de gazdă separate prin virgulă |
--output |
Fișierul XML de scris |
Șablonul setează PUID=99, PGID=100 și UMASK=022. Dă acelui cont permisiune de scriere pe fișierele media de test. Pune fișierul în /boot/config/plugins/dockerMan/templates-user/ și alege-l la Docker > Add Container > Template (Docker > Adaugă container > Șablon).
Vezi și
Link către Vezi șiHolyArrs este gratuit. Dacă ți-a economisit timp, dă-i o stea pe GitHub, sponsorizează-l sau cumpără-mi o cafea.