Wydawanie wersji
Zaawansowany
Zamień przetestowany build w wersję. Ta strona jest dla opiekunów.
Zanim zaczniesz
Link do: Zanim zaczniesz- Każda kontrola ze strony Testy przechodzi, w tym pełne uruchomienie end-to-end oraz długie i awaryjne.
CHANGELOG.mdzawiera nową wersję.- Python 3 jest zainstalowany do skryptów wydania.
Przygotuj wersję
Link do: Przygotuj wersję-
Napisz
releases/notes-<version>.toml, na przykładreleases/notes-1.0.0.toml. Zobacz Plik notatek do wersji. -
Sprawdź go:
Terminal window python deploy/release/notes.py 1.0.0 --checkNie powinno być żadnych błędów. Zakazane słowo, długi myślnik, data, zapowiedź premiery lub powtórzony problem w highlightach kończy się kodem 1.
-
Zbuduj teksty wersji:
Terminal window python deploy/release/notes.py 1.0.0W
releases/out/1.0.0/znajdziesz 7 plików. -
Zbuduj image i uruchom go na świeżym folderze konfiguracji:
Terminal window docker build --file deploy/Dockerfile .Zobaczysz kreator pierwszego uruchomienia.
-
Uruchom na swoim komputerze każdą kontrolę ze strony Testy. Testy działają lokalnie, nie na GitHubie.
-
Przekaż wersję opiekunowi. Opiekun wypycha tag wersji na main i to uruchamia wydanie.
Opcje
Link do: OpcjeNazwy wersji i tagów
Link do: Nazwy wersji i tagów| Co | Nazwa |
|---|---|
| Tag Gita (wypycha opiekun) | 1.0.0 (same liczby, bez v) |
Tag image i version w notatkach |
1.0.0 |
Workflow startuje tylko dla tagu X.Y.Z i zatrzymuje się, gdy tag różni się od pliku VERSION.
Tagi image
Link do: Tagi imageKażda wersja wypycha swój tag wersji oraz :latest.
Wycofaj wersję
Link do: Wycofaj wersję- Wypchnij następną wersję z poprawką.
- Oznacz złą wersję na liście aktualizacji, żeby instalacje jej nie proponowały.
- Zostaw tag.
Jeśli to nie działa
Link do: Jeśli to nie działaObjaw. notes.py --check kończy się kodem 1.
Przyczyna. Plik notatek łamie regułę. Komunikat podaje linię.
Rozwiązanie. Edytuj plik notatek, nigdy pliki w releases/out, i uruchom ponownie.
Objaw. Workflow zatrzymuje się z komunikatem VERSION says.
Przyczyna. Tag i plik VERSION różnią się.
Rozwiązanie. Popraw VERSION na main i wypchnij tag następnej wersji.
Dla zaawansowanych
Link do: Dla zaawansowanychPlik notatek do wersji
Każdy tekst wersji powstaje z jednego pliku. Nigdy nie edytuj ręcznie tego, co zbuduje.
| Pole | Zawartość |
|---|---|
version |
Samo X.Y.Z |
theme |
Jedna linia |
images |
Lista {registry, name}. Tylko Docker Hub holyarrs/holyarrs |
docs_url |
Opcjonalne. Puste oznacza brak linku do dokumentacji |
[[highlights]] |
Dokładnie 3, każdy z line, issues i shot. Ich zgłoszenia nie pojawiają się w żadnej linii grupy |
[groups] |
Linie dla każdego miejsca. Domyślnie jest New. Pozostałe zaczynają się od Changed: , Fixed: lub Docs: . Każda kończy się swoim zgłoszeniem, na przykład (#46). Miejsce z mniej niż 3 liniami trafia pod Also new |
| Opcjonalne | [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Puste części są ukryte |
Login z GitHuba wpisuj tylko wtedy, gdy jest znany, w pliku notatek lub w releases/credits-map.json.
Kolejność treści: theme, Highlights, miejsca (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, linia ze statystykami.
Wynik w releases/out/<version>/ |
Do czego służy |
|---|---|
changelog.md |
Wpis do changeloga |
github.md |
Treść wydania na GitHubie |
update-notes.json |
Notatki pokazywane w aplikacji |
reddit.txt |
Post na Reddicie |
discord-dm.txt, discord-announce.md |
Discord. Każdy ma poniżej 1000 znaków |
roadmap-card.json |
Karta planu rozwoju |
notes.py przyjmuje --file (inny plik notatek), --map (inną mapę podziękowań), --out (inny folder wyjściowy) i --date. --check ostrzega o długich liniach i prawie powtórzeniach.
Workflow image
Workflow HolyArrs - Release startuje, gdy zostanie wypchnięty tag wersji. Ma trzy kroki:
- Zbuduj i wypchnij image dla
linux/amd64,linux/arm64ilinux/arm/v7, z tagiem wersji ilatest. - Zaktualizuj opis na Docker Hub z
README.md. - Opublikuj wydanie na GitHubie z sekcją
CHANGELOG.mddla tej wersji.
Lista aktualizacji
Aplikacja czyta podpisaną listę aktualizacji. Każda wersja dodaje swój wpis i go podpisuje. Klucz podpisu nigdy nie trafia do repo. HolyArrs odrzuca listę, której nie może zweryfikować.
Po wydaniu sprawdź, czy etykieta wersji w image zgadza się z tagiem, i przez pierwszy dzień obserwuj nowe zgłoszenia:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsTestowy szablon dla Unraida
deploy/release/nas-template.py zapisuje szablon użytkownika Unraida dla jednego konkretnego image. Niczego nie pobiera, nie instaluje ani nie publikuje.
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.xmlZamień <digest> i <pool>.
| Flaga | Uwagi |
|---|---|
--image |
Digest manifestu z rejestru, nie ID image Dockera |
--config |
Ścieżka puli. Narzędzie odrzuca /mnt/user i /mnt/user0 |
--movies, --tv, --music, --downloads |
Opcjonalne. Osobne ścieżki to osobne montowania, więc import kopiuje |
--port |
Domyślnie 6262 |
--allowed-hosts |
Opcjonalne, nazwy hostów oddzielone przecinkami |
--output |
Plik XML do zapisania |
Szablon ustawia PUID=99, PGID=100 i UMASK=022. Daj temu kontu dostęp do zapisu w testowych multimediach. Wrzuć plik do /boot/config/plugins/dockerMan/templates-user/ i wybierz go w Docker > Add Container > Template (Docker > dodaj kontener > szablon).
Powiązane strony
Link do: Powiązane stronyHolyArrs jest darmowy. Jeśli oszczędził ci czas, daj mu gwiazdkę na GitHubie, zostań sponsorem albo postaw mi kawę.