Preskoči na sadržaj

Izdavanje verzija

Napredno

Pretvori testirani build u verziju. Ova stranica je za maintainere.

  • Svaka provjera iz Testiranja prolazi, uključujući potpuno end-to-end pokretanje te duga i fault pokretanja.
  • CHANGELOG.md ima novu verziju.
  • Python 3 je instaliran za skripte za izdavanje.
  1. Napiši releases/notes-<version>.toml, na primjer releases/notes-1.0.0.toml. Vidi Datoteka s bilješkama uz verziju.

  2. Provjeri je:

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

    Ne bi smjelo biti grešaka. Zabranjena riječ, duga crtica, datum, govor o lansiranju ili ponovljeni highlight završavaju s izlaznim kodom 1.

  3. Izgradi tekstove verzije:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Vidjet ćeš 7 datoteka u releases/out/1.0.0/.

  4. Izgradi image i pokreni ga na svježoj mapi s konfiguracijom:

    Terminal window
    docker build --file deploy/Dockerfile .

    Vidjet ćeš čarobnjak za prvo pokretanje.

  5. Pokreni svaku provjeru iz Testiranja na svom računalu. Testovi se izvode lokalno, ne na GitHubu.

  6. Predaj verziju maintaineru. Maintainer pusha tag verzije na main i time pokreće izdavanje.

Što Ime
Git tag (pusha ga maintainer) 1.0.0 (obični brojevi, bez v)
Tag imagea i version u bilješkama 1.0.0

Workflow se pokreće samo za tag oblika X.Y.Z i staje kad se tag razlikuje od datoteke VERSION.

Svaka verzija pusha svoj tag verzije i :latest.

  1. Pushaj sljedeću verziju s popravkom.
  2. Označi lošu verziju u popisu ažuriranja da je instalacije ne nude.
  3. Zadrži tag.

Simptom. notes.py --check završava s kodom 1. Uzrok. Datoteka s bilješkama krši pravilo. Poruka navodi redak. Rješenje. Uredi datoteku s bilješkama, nikad datoteke u releases/out, i pokreni ponovno.

Simptom. Workflow staje s porukom VERSION says. Uzrok. Tag i datoteka VERSION se razlikuju. Rješenje. Popravi VERSION na mainu i pushaj tag sljedeće verzije.

Datoteka s bilješkama uz verziju

Svaki tekst verzije dolazi iz jedne datoteke. Nikad ručno ne uređuj ono što ona izgradi.

Polje Sadržaj
version Obični X.Y.Z
theme Jedan redak
images Popis {registry, name}. Samo Docker Hub holyarrs/holyarrs
docs_url Neobavezno. Prazno znači bez poveznice na dokumentaciju
[[highlights]] Točno 3, svaki s line, issues i shot. Njihovi issueji se ne pojavljuju ni u jednom retku skupine
[groups] Retci po mjestu. New je zadano. Ostali počinju s Changed: , Fixed: ili Docs: . Svaki završava svojim issueom, na primjer (#46). Mjesto s manje od 3 retka ide pod Also new
Neobavezno [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Prazni dijelovi se skrivaju

GitHub login koristi samo kad je poznat, u datoteci s bilješkama ili u releases/credits-map.json.

Redoslijed teksta: theme, Highlights, mjesta (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, redak sa statistikom.

Izlaz u releases/out/<version>/ Koristi se za
changelog.md Unos u changelog
github.md Tekst GitHub verzije
update-notes.json Bilješke koje prikazuje aplikacija
reddit.txt Reddit objavu
discord-dm.txt, discord-announce.md Discord. Svaki ostaje ispod 1.000 znakova
roadmap-card.json Karticu roadmapa

notes.py prima --file (druga datoteka s bilješkama), --map (druga mapa zasluga), --out (druga izlazna mapa) i --date. --check upozorava na duge retke i skoro ponavljanja.

Workflow za image

Workflow HolyArrs - Release pokreće se kad se pushne tag verzije. Ima tri koraka:

  1. Izgradi i pushaj image za linux/amd64, linux/arm64 i linux/arm/v7, s tagom verzije i latest.
  2. Ažuriraj opis na Docker Hubu iz README.md.
  3. Objavi GitHub verziju s odjeljkom CHANGELOG.md za ovu verziju.
Popis ažuriranja

Aplikacija čita potpisani popis ažuriranja. Svaka verzija dodaje svoj unos i potpisuje ga. Ključ za potpisivanje nikad ne ide u repozitorij. HolyArrs odbija popis koji ne može provjeriti.

Nakon verzije provjeri da se oznaka verzije imagea podudara s tagom i prvi dan prati nove issuee:

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

deploy/release/nas-template.py piše Unraid korisnički predložak za jedan točno određen image. Ništa ne preuzima, ne instalira ni ne objavljuje.

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

Zamijeni <digest> i <pool>.

Zastavica Napomene
--image Digest manifesta u registryju, ne ID Docker imagea
--config Putanja na poolu. Alat odbija /mnt/user i /mnt/user0
--movies, --tv, --music, --downloads Neobavezno. Odvojene putanje su odvojeni mountovi, pa se uvoz kopira
--port Prema zadanim postavkama 6262
--allowed-hosts Neobavezno, imena hostova odvojena zarezom
--output XML datoteka koju treba napisati

Predložak postavlja PUID=99, PGID=100 i UMASK=022. Daj tom računu pravo pisanja na testne medije. Stavi datoteku u /boot/config/plugins/dockerMan/templates-user/ i odaberi je pod Docker > Add Container > Template (Docker > Dodaj container > Predložak).

HolyArrs je besplatan. Ako ti je uštedio vrijeme, daj mu zvjezdicu na GitHubu, podrži ga ili počasti me kavom.