İçeriğe geç

Sürüm çıkarma

Uzman

Test edilmiş bir derlemeyi sürüme çevir. Bu sayfa bakımcılar içindir.

  • Test sayfasındaki her denetim geçiyor, tam bir uçtan uca çalıştırma, uzun ve fault çalıştırmaları dahil.
  • CHANGELOG.md içinde yeni sürüm var.
  • Sürüm betikleri için Python 3 kurulu.
  1. releases/notes-<version>.toml dosyasını yaz, örneğin releases/notes-1.0.0.toml. Bkz. Sürüm notları dosyası.

  2. Denetle:

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

    Hiç hata görmemelisin. Yasaklı bir kelime, uzun tire, tarih, lansman havası ya da tekrar eden bir öne çıkan issue 1 koduyla çıkar.

  3. Sürüm metinlerini üret:

    Terminal window
    python deploy/release/notes.py 1.0.0

    releases/out/1.0.0/ içinde 7 dosya görmelisin.

  4. İmajı derle ve temiz bir yapılandırma klasörüyle başlat:

    Terminal window
    docker build --file deploy/Dockerfile .

    İlk açılış sihirbazını görmelisin.

  5. Test sayfasındaki her denetimi kendi bilgisayarında çalıştır. Testler yerelde çalışır, GitHub’da değil.

  6. Sürümü bakımcıya ver. Bakımcı sürüm etiketini main üzerine iter ve sürüm bununla başlar.

Ne Ad
Git etiketi (bakımcı iter) 1.0.0 (düz sayılar, v yok)
İmaj etiketi ve notlardaki version 1.0.0

İş akışı yalnızca X.Y.Z biçimli bir etiketle başlar ve etiket VERSION dosyasından farklıysa durur.

Her sürüm kendi sürüm etiketini ve :latest etiketini iter.

  1. Düzeltmeyle birlikte sonraki sürümü it.
  2. Kurulumlar önermesin diye kötü sürümü güncelleme listesinde işaretle.
  3. Etiketi silme.

Belirti. notes.py --check 1 koduyla çıkıyor. Neden. Not dosyası bir kuralı bozuyor. Mesaj satırı söyler. Çözüm. Not dosyasını düzenle, releases/out içindeki dosyalara asla dokunma, sonra yeniden çalıştır.

Belirti. İş akışı VERSION says diyerek duruyor. Neden. Etiket ile VERSION dosyası farklı. Çözüm. main üzerinde VERSION dosyasını düzelt ve sonraki sürüm etiketini it.

Sürüm notları dosyası

Her sürüm metni tek bir dosyadan gelir. Onun ürettiklerini asla elle düzenleme.

Alan İçerik
version Düz X.Y.Z
theme Tek satır
images {registry, name} listesi. Yalnızca Docker Hub holyarrs/holyarrs
docs_url İsteğe bağlı. Boşsa Docs bağlantısı olmaz
[[highlights]] Tam 3 tane, her biri line, issues ve shot ile. Bunların issue’ları hiçbir grup satırında görünmez
[groups] Yer başına satırlar. Varsayılan New’dur. Diğerleri Changed: , Fixed: veya Docs: ile başlar. Her biri (#46) gibi kendi issue’suyla biter. 3’ten az satırı olan yer Also new altına girer
İsteğe bağlı [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Boş bölümler gizlenir

GitHub kullanıcı adını yalnızca biliniyorsa, not dosyasında veya releases/credits-map.json içinde kullan.

Gövde sırası: theme, Highlights, yerler (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, stats satırı.

releases/out/<version>/ içindeki çıktı Kullanıldığı yer
changelog.md Changelog girdisi
github.md GitHub sürüm gövdesi
update-notes.json Uygulamanın gösterdiği notlar
reddit.txt Reddit gönderisi
discord-dm.txt, discord-announce.md Discord. Her biri 1.000 karakterin altında kalır
roadmap-card.json Yol haritası kartı

notes.py şunları alır: --file (başka bir not dosyası), --map (başka bir credits map), --out (başka bir çıktı klasörü) ve --date. --check uzun satırlar ve yakın tekrarlar için uyarır.

İmaj iş akışı

HolyArrs - Release iş akışı bir sürüm etiketi itildiğinde başlar. Üç adımı vardır:

  1. İmajı linux/amd64, linux/arm64 ve linux/arm/v7 için derle, sürüm etiketi ve latest ile it.
  2. Docker Hub açıklamasını README.md dosyasından güncelle.
  3. GitHub sürümünü, bu sürümün CHANGELOG.md bölümüyle yayımla.
Güncelleme listesi

Uygulama imzalı bir güncelleme listesi okur. Her sürüm kendi girdisini ekler ve imzalar. İmzalama anahtarı asla repoya girmez. HolyArrs doğrulayamadığı listeyi reddeder.

Bir sürümden sonra imajın sürüm etiketinin git etiketiyle eşleştiğini denetle ve ilk gün boyunca yeni issue’ları izle:

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

deploy/release/nas-template.py, tam olarak bir imaj için Unraid kullanıcı şablonu yazar. Hiçbir şey çekmez, kurmaz ya da yayımlamaz.

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

<digest> ve <pool> yerine kendi değerlerini yaz.

Bayrak Not
--image Registry manifest digest’i, Docker imaj ID’si değil
--config Bir havuz yolu. Araç /mnt/user ve /mnt/user0 yollarını reddeder
--movies, --tv, --music, --downloads İsteğe bağlı. Ayrı yollar ayrı bağlama noktalarıdır, yani içe aktarma kopyalar
--port Varsayılan 6262
--allowed-hosts İsteğe bağlı, virgülle ayrılmış host adları
--output Yazılacak XML dosyası

Şablon PUID=99, PGID=100 ve UMASK=022 ayarlar. Bu hesaba test medyasına yazma izni ver. Dosyayı /boot/config/plugins/dockerMan/templates-user/ içine koy ve Docker > Add Container > Template (Docker > Konteyner ekle > Şablon) altından seç.

HolyArrs ücretsiz. Zamanından tasarruf ettirdiyse GitHub'da yıldızla, sponsor ol ya da bana bir kahve ısmarla.