Saltar al contingut

Publicar versions

Expert

Converteix una compilació provada en una versió. Aquesta pàgina és per als mantenidors.

  • Totes les comprovacions de Proves passen, incloses una execució completa d’extrem a extrem i les execucions llargues i de fallades.
  • CHANGELOG.md té la versió nova.
  • Tens Python 3 instal·lat per als scripts de la versió.
  1. Escriu releases/notes-<version>.toml, per exemple releases/notes-1.0.0.toml. Mira Fitxer de notes de la versió.

  2. Comprova’l:

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

    No hauries de veure cap error. Una paraula prohibida, un guió llarg, una data, text de promoció o un destacat repetit fan que surti amb codi 1.

  3. Genera els textos de la versió:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Hauries de trobar 7 fitxers a releases/out/1.0.0/.

  4. Compila la imatge i inicia-la amb una carpeta de configuració nova:

    Terminal window
    docker build --file deploy/Dockerfile .

    Hauries de veure l’assistent del primer inici.

  5. Executa totes les comprovacions de Proves al teu equip. Les proves s’executen en local, no a GitHub.

  6. Passa la versió al mantenidor. El mantenidor puja l’etiqueta de la versió a main, i això inicia la publicació.

Noms de la versió i de l’etiqueta

Enllaç a Noms de la versió i de l’etiqueta
Cosa Nom
Etiqueta de Git (la puja el mantenidor) 1.0.0 (números simples, sense v)
Etiqueta de la imatge i version de les notes 1.0.0

El workflow només s’inicia amb una etiqueta X.Y.Z i s’atura quan l’etiqueta és diferent del fitxer VERSION.

Etiquetes de la imatge

Enllaç a Etiquetes de la imatge

Cada versió puja la seva etiqueta de versió i :latest.

  1. Puja la versió següent amb la correcció.
  2. Marca la versió defectuosa a la llista d’actualitzacions perquè les instal·lacions no l’ofereixin.
  3. Conserva l’etiqueta.

Símptoma. notes.py --check surt amb codi 1. Causa. El fitxer de notes trenca una regla. El missatge indica la línia. Solució. Edita el fitxer de notes, mai els fitxers de releases/out, i torna’l a executar.

Símptoma. El workflow s’atura amb VERSION says. Causa. L’etiqueta i el fitxer VERSION són diferents. Solució. Corregeix VERSION a main i puja l’etiqueta de la versió següent.

Fitxer de notes de la versió

Tots els textos de la versió surten d’un sol fitxer. No editis mai a mà el que genera.

Camp Contingut
version X.Y.Z simple
theme Una línia
images Llista de {registry, name}. Només Docker Hub holyarrs/holyarrs
docs_url Opcional. Buit vol dir que no hi ha enllaç als documents
[[highlights]] Exactament 3, cadascun amb line, issues i shot. Les seves incidències no apareixen en cap línia de grup
[groups] Línies per lloc. New és el per defecte. Les altres comencen amb Changed: , Fixed: o Docs: . Cadascuna acaba amb la seva incidència, com (#46). Un lloc amb menys de 3 línies va sota Also new
Opcional [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Les parts buides s’amaguen

Fes servir un nom d’usuari de GitHub només quan es coneix, al fitxer de notes o a releases/credits-map.json.

Ordre del cos: theme, Highlights, llocs (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, línia d’estadístiques.

Sortida a releases/out/<version>/ S’usa per a
changelog.md L’entrada del registre de canvis
github.md El cos de la versió de GitHub
update-notes.json Les notes que mostra l’app
reddit.txt La publicació de Reddit
discord-dm.txt, discord-announce.md Discord. Cadascun es queda per sota dels 1.000 caràcters
roadmap-card.json La targeta del full de ruta

notes.py accepta --file (un altre fitxer de notes), --map (un altre mapa de crèdits), --out (una altra carpeta de sortida) i --date. --check avisa de línies llargues i de repeticions gairebé idèntiques.

El workflow de la imatge

El workflow HolyArrs - Release s’inicia quan es puja una etiqueta de versió. Té tres passos:

  1. Compilar i pujar la imatge per a linux/amd64, linux/arm64 i linux/arm/v7, amb l’etiqueta de la versió i latest.
  2. Actualitzar la descripció de Docker Hub des de README.md.
  3. Publicar la versió de GitHub amb la secció de CHANGELOG.md d’aquesta versió.
Llista d'actualitzacions

L’app llegeix una llista d’actualitzacions signada. Cada versió hi afegeix la seva entrada i la signa. La clau de signatura no entra mai al repositori. HolyArrs rebutja una llista que no pot verificar.

Després d’una versió, comprova que l’etiqueta de versió de la imatge coincideix amb l’etiqueta, i vigila les incidències noves durant el primer dia:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Plantilla de prova per a Unraid

deploy/release/nas-template.py escriu una plantilla d’usuari d’Unraid per a una imatge exacta. No baixa, no instal·la ni publica res.

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

Substitueix <digest> i <pool>.

Indicador Notes
--image El digest del manifest del registre, no un ID d’imatge de Docker
--config Una ruta del pool. L’eina rebutja /mnt/user i /mnt/user0
--movies, --tv, --music, --downloads Opcionals. Rutes separades són muntatges separats, així que les importacions copien
--port Per defecte és 6262
--allowed-hosts Opcional, noms de host separats per comes
--output El fitxer XML que s’escriu

La plantilla defineix PUID=99, PGID=100 i UMASK=022. Dona a aquest compte permís d’escriptura als fitxers multimèdia de prova. Posa el fitxer a /boot/config/plugins/dockerMan/templates-user/ i tria’l a Docker > Add Container > Template (Docker > afegir contenidor > plantilla).

HolyArrs és gratis. Si t'ha estalviat temps, dona-li una estrella a GitHub, patrocina'l o convida'm a un cafè.