Κυκλοφορία εκδόσεων
Για έμπειρους
Κάνε ένα δοκιμασμένο build έκδοση. Αυτή η σελίδα είναι για συντηρητές.
Πριν ξεκινήσεις
Σύνδεσμος προς Πριν ξεκινήσεις- Περνούν όλοι οι έλεγχοι στις Δοκιμές, μαζί με ένα πλήρες end-to-end τρέξιμο και τα μεγάλα τρεξίματα και τα τρεξίματα βλαβών.
- Το
CHANGELOG.mdέχει τη νέα έκδοση. - Είναι εγκατεστημένη η Python 3 για τα scripts της έκδοσης.
Ετοίμασε μια έκδοση
Σύνδεσμος προς Ετοίμασε μια έκδοση-
Γράψε το
releases/notes-<version>.toml, για παράδειγμαreleases/notes-1.0.0.toml. Δες το Αρχείο σημειώσεων έκδοσης. -
Έλεγξέ το:
Terminal window python deploy/release/notes.py 1.0.0 --checkΔεν θα πρέπει να δεις σφάλματα. Μια απαγορευμένη λέξη, ένα em dash, μια ημερομηνία, λόγος για το launch ή ένα επαναλαμβανόμενο ζήτημα στα highlights τερματίζει με κωδικό 1.
-
Φτιάξε τα κείμενα της έκδοσης:
Terminal window python deploy/release/notes.py 1.0.0Θα πρέπει να βρεις 7 αρχεία στο
releases/out/1.0.0/. -
Κάνε build την image και ξεκίνησέ την με φρέσκο φάκελο ρυθμίσεων:
Terminal window docker build --file deploy/Dockerfile .Θα πρέπει να δεις τον οδηγό πρώτης εκκίνησης.
-
Τρέξε κάθε έλεγχο του Δοκιμές στον υπολογιστή σου. Οι δοκιμές τρέχουν τοπικά, όχι στο GitHub.
-
Πέρασε την έκδοση στον συντηρητή. Ο συντηρητής κάνει push το tag της έκδοσης στο main, και αυτό ξεκινά την κυκλοφορία.
Επιλογές
Σύνδεσμος προς ΕπιλογέςΟνόματα έκδοσης και tag
Σύνδεσμος προς Ονόματα έκδοσης και tag| Πράγμα | Όνομα |
|---|---|
| Git tag (το κάνει push ο συντηρητής) | 1.0.0 (απλοί αριθμοί, χωρίς v) |
Tag της image και το version των σημειώσεων |
1.0.0 |
Το workflow ξεκινά μόνο για tag της μορφής X.Y.Z και σταματά όταν το tag διαφέρει από το αρχείο VERSION.
Tags της image
Σύνδεσμος προς Tags της imageΚάθε έκδοση κάνει push το tag της έκδοσής της και το :latest.
Ανάκληση μιας έκδοσης
Σύνδεσμος προς Ανάκληση μιας έκδοσης- Κάνε push την επόμενη έκδοση με τη διόρθωση.
- Σημείωσε την κακή έκδοση στη λίστα ενημερώσεων, ώστε οι εγκαταστάσεις να μην την προσφέρουν.
- Κράτα το tag.
Αν δεν δουλεύει
Σύνδεσμος προς Αν δεν δουλεύειΣύμπτωμα. Το notes.py --check τερματίζει με κωδικό 1.
Αιτία. Το αρχείο σημειώσεων σπάει έναν κανόνα. Το μήνυμα ονομάζει τη γραμμή.
Λύση. Διόρθωσε το αρχείο σημειώσεων, ποτέ τα αρχεία στο releases/out, και τρέξε το ξανά.
Σύμπτωμα. Το workflow σταματά με VERSION says.
Αιτία. Το tag και το αρχείο VERSION διαφέρουν.
Λύση. Διόρθωσε το VERSION στο main και κάνε push το tag της επόμενης έκδοσης.
Για έμπειρους
Σύνδεσμος προς Για έμπειρουςΑρχείο σημειώσεων έκδοσης
Κάθε κείμενο της έκδοσης προκύπτει από ένα αρχείο. Μην επεξεργάζεσαι ποτέ με το χέρι ό,τι φτιάχνει.
| Πεδίο | Περιεχόμενο |
|---|---|
version |
Απλό X.Y.Z |
theme |
Μία γραμμή |
images |
Λίστα με {registry, name}. Μόνο το holyarrs/holyarrs στο Docker Hub |
docs_url |
Προαιρετικό. Κενό σημαίνει χωρίς σύνδεσμο στα Docs |
[[highlights]] |
Ακριβώς 3, το καθένα με line, issues και shot. Τα issues τους δεν εμφανίζονται σε καμία γραμμή ομάδας |
[groups] |
Γραμμές ανά σημείο. Το New είναι η προεπιλογή. Οι άλλες ξεκινούν με Changed: , Fixed: ή Docs: . Κάθε γραμμή τελειώνει με το issue της, όπως (#46). Ένα σημείο με λιγότερες από 3 γραμμές πηγαίνει κάτω από το Also new |
| Προαιρετικά | [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Τα κενά μέρη κρύβονται |
Χρησιμοποίησε GitHub login μόνο όταν είναι γνωστό, στο αρχείο σημειώσεων ή στο releases/credits-map.json.
Σειρά του κειμένου: theme, Highlights, σημεία (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, γραμμή στατιστικών.
Έξοδος στο releases/out/<version>/ |
Χρήση |
|---|---|
changelog.md |
Η καταχώρηση στο changelog |
github.md |
Το κείμενο της έκδοσης στο GitHub |
update-notes.json |
Οι σημειώσεις που δείχνει η εφαρμογή |
reddit.txt |
Η ανάρτηση στο Reddit |
discord-dm.txt, discord-announce.md |
Discord. Καθένα μένει κάτω από 1.000 χαρακτήρες |
roadmap-card.json |
Η κάρτα του roadmap |
Το notes.py δέχεται --file (άλλο αρχείο σημειώσεων), --map (άλλο credits map), --out (άλλον φάκελο εξόδου) και --date. Το --check προειδοποιεί για μακριές γραμμές και σχεδόν επαναλήψεις.
Το workflow της image
Το workflow HolyArrs - Release ξεκινά όταν γίνεται push ένα tag έκδοσης. Έχει τρία βήματα:
- Κάνει build και push την image για
linux/amd64,linux/arm64καιlinux/arm/v7, με το tag της έκδοσης και τοlatest. - Ενημερώνει την περιγραφή στο Docker Hub από το
README.md. - Δημοσιεύει την έκδοση στο GitHub με την ενότητα αυτής της έκδοσης από το
CHANGELOG.md.
Λίστα ενημερώσεων
Η εφαρμογή διαβάζει μια υπογεγραμμένη λίστα ενημερώσεων. Κάθε έκδοση προσθέτει την καταχώρησή της και την υπογράφει. Το κλειδί υπογραφής δεν μπαίνει ποτέ στο repo. Το HolyArrs αρνείται μια λίστα που δεν μπορεί να επαληθεύσει.
Μετά από μια έκδοση, έλεγξε ότι η ετικέτα έκδοσης της image ταιριάζει με το tag, και παρακολούθησε τα νέα issues για την πρώτη μέρα:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsΔοκιμαστικό template για Unraid
Το deploy/release/nas-template.py γράφει ένα user template για Unraid για μία συγκεκριμένη image. Δεν κατεβάζει, δεν εγκαθιστά και δεν δημοσιεύει τίποτα.
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Αντικατάστησε τα <digest> και <pool>.
| Flag | Σημειώσεις |
|---|---|
--image |
Το digest του manifest στο registry, όχι το ID μιας image του Docker |
--config |
Μια διαδρομή pool. Το εργαλείο αρνείται τα /mnt/user και /mnt/user0 |
--movies, --tv, --music, --downloads |
Προαιρετικά. Ξεχωριστές διαδρομές είναι ξεχωριστές συνδέσεις φακέλων, άρα οι εισαγωγές αντιγράφουν |
--port |
Από προεπιλογή 6262 |
--allowed-hosts |
Προαιρετικό, ονόματα host χωρισμένα με κόμμα |
--output |
Το αρχείο XML που θα γραφτεί |
Το template ορίζει PUID=99, PGID=100 και UMASK=022. Δώσε σε αυτόν τον λογαριασμό δικαίωμα εγγραφής στα δοκιμαστικά πολυμέσα. Βάλε το αρχείο στο /boot/config/plugins/dockerMan/templates-user/ και διάλεξέ το κάτω από Docker > Add Container > Template (Docker > Προσθήκη container > Template).
Σχετικά
Σύνδεσμος προς ΣχετικάΤο HolyArrs είναι δωρεάν. Αν σου γλίτωσε χρόνο, βάλε του αστέρι στο GitHub, γίνε χορηγός ή κέρασέ με έναν καφέ.