Gå til indhold

Udgivelse

Erfaren

Gør et testet build til en version. Denne side er for vedligeholdere.

  • Alle tjek i Testning består, også en fuld end-to-end-kørsel og de lange kørsler og fejlkørslerne.
  • CHANGELOG.md har den nye version.
  • Python 3 er installeret til release-scripts.

Forbered en version

Link til Forbered en version
  1. Skriv releases/notes-<version>.toml, for eksempel releases/notes-1.0.0.toml. Se Filen med versionsnoter.

  2. Tjek den:

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

    Du bør ikke se nogen fejl. Et forbudt ord, en tankestreg, en dato, lanceringssnak eller et gentaget highlight giver exit 1.

  3. Byg versionsteksterne:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Du bør finde 7 filer i releases/out/1.0.0/.

  4. Byg imaget og start det på en ny konfigurationsmappe:

    Terminal window
    docker build --file deploy/Dockerfile .

    Du bør se guiden ved første start.

  5. Kør alle tjek i Testning på din computer. Tests kører lokalt, ikke på GitHub.

  6. Giv versionen videre til vedligeholderen. Vedligeholderen pusher versions-tagget på main, og det starter udgivelsen.

Link til Navne på version og tag
Ting Navn
Git-tag (pushes af vedligeholderen) 1.0.0 (almindelige tal, uden v)
Image-tag og version i noterne 1.0.0

Workflowet starter kun for et X.Y.Z-tag og stopper, når tagget er forskelligt fra filen VERSION.

Hver version pusher sit versions-tag og :latest.

Træk en version tilbage

Link til Træk en version tilbage
  1. Push den næste version med rettelsen.
  2. Marker den dårlige version i opdateringslisten, så installationer ikke tilbyder den.
  3. Behold tagget.

Hvis det ikke virker

Link til Hvis det ikke virker

Symptom. notes.py --check giver exit 1. Årsag. Notefilen bryder en regel. Beskeden nævner linjen. Løsning. Ret notefilen, aldrig filerne i releases/out, og kør den igen.

Symptom. Workflowet stopper med VERSION says. Årsag. Tagget og filen VERSION er forskellige. Løsning. Ret VERSION på main og push det næste versions-tag.

Filen med versionsnoter

Alle versionstekster kommer fra én fil. Ret aldrig i det, den bygger, i hånden.

Felt Indhold
version Almindelig X.Y.Z
theme Én linje
images Liste af {registry, name}. Kun Docker Hub holyarrs/holyarrs
docs_url Valgfri. Tom betyder intet link til dokumentationen
[[highlights]] Præcis 3, hver med line, issues og shot. Deres issues står ikke i nogen gruppelinje
[groups] Linjer pr. sted. New er standard. Andre starter med Changed: , Fixed: eller Docs: . Hver ender med sin issue, for eksempel (#46). Et sted med under 3 linjer kommer under Also new
Valgfrit [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Tomme dele bliver skjult

Brug kun et GitHub-login, når det er kendt, i notefilen eller i releases/credits-map.json.

Rækkefølge i teksten: tema, Highlights, steder (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, statistiklinjen.

Output i releases/out/<version>/ Bruges til
changelog.md Indlægget i changelog
github.md Teksten til GitHub-udgivelsen
update-notes.json Noterne, appen viser
reddit.txt Opslaget på Reddit
discord-dm.txt, discord-announce.md Discord. Hver er under 1.000 tegn
roadmap-card.json Kortet på køreplanen

notes.py tager --file (en anden notefil), --map (en anden kreditliste), --out (en anden outputmappe) og --date. --check advarer om lange linjer og næsten-gentagelser.

Image-workflowet

Workflowet HolyArrs - Release starter, når et versions-tag pushes. Det har tre trin:

  1. Byg og push imaget til linux/amd64, linux/arm64 og linux/arm/v7, med versions-tagget og latest.
  2. Opdater beskrivelsen på Docker Hub ud fra README.md.
  3. Udgiv GitHub-udgivelsen med denne versions afsnit i CHANGELOG.md.
Opdateringsliste

Appen læser en signeret opdateringsliste. Hver version tilføjer sit indlæg og signerer det. Signeringsnøglen kommer aldrig i repoet. HolyArrs afviser en liste, det ikke kan verificere.

Efter en version skal du tjekke, at imagets versionslabel passer med tagget, og holde øje med nye issues den første dag:

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

deploy/release/nas-template.py skriver en Unraid-brugerskabelon til ét bestemt image. Den henter, installerer og udgiver 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

Erstat <digest> og <pool>.

Flag Noter
--image Registrets manifest-digest, ikke et Docker-image-ID
--config En pool-sti. Værktøjet afviser /mnt/user og /mnt/user0
--movies, --tv, --music, --downloads Valgfri. Separate stier er separate mounts, så importer kopierer
--port Som standard 6262
--allowed-hosts Valgfri, værtsnavne adskilt af komma
--output XML-filen, der skrives

Skabelonen sætter PUID=99, PGID=100 og UMASK=022. Giv den konto skriveadgang til testmedierne. Læg filen i /boot/config/plugins/dockerMan/templates-user/ og vælg den under Docker > Add Container > Template (tilføj container, skabelon).

HolyArrs er gratis. Hvis det sparede dig tid, kan du give det en stjerne på GitHub, sponsorere det eller give mig en kop kaffe.