Lewati ke konten

Merilis

Mahir

Ubah build yang sudah diuji menjadi sebuah versi. Halaman ini untuk maintainer.

  • Setiap pemeriksaan di Pengujian lolos, termasuk satu run end-to-end penuh dan run panjang serta run fault.
  • CHANGELOG.md sudah memuat versi baru.
  • Python 3 terpasang untuk script rilis.

Siapkan sebuah versi

Tautan ke Siapkan sebuah versi
  1. Tulis releases/notes-<version>.toml, misalnya releases/notes-1.0.0.toml. Lihat File catatan rilis.

  2. Periksa:

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

    Kamu tidak akan melihat error. Kata terlarang, em dash, tanggal, bahasa peluncuran, atau issue highlight yang berulang akan membuatnya keluar dengan kode 1.

  3. Bangun teks rilisnya:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Kamu akan menemukan 7 file di releases/out/1.0.0/.

  4. Bangun image dan jalankan dengan folder konfigurasi baru:

    Terminal window
    docker build --file deploy/Dockerfile .

    Kamu akan melihat wizard pertama kali dijalankan.

  5. Jalankan setiap pemeriksaan di Pengujian di komputer kamu. Tes berjalan secara lokal, bukan di GitHub.

  6. Serahkan versinya ke maintainer. Maintainer mem-push tag versi di main, dan itulah yang memulai rilis.

Hal Nama
Tag Git (di-push oleh maintainer) 1.0.0 (angka biasa, tanpa v)
Tag image dan version di catatan 1.0.0

Workflow hanya mulai untuk tag X.Y.Z dan berhenti kalau tag berbeda dari file VERSION.

Setiap versi mem-push tag versinya dan :latest.

Tarik kembali sebuah versi

Tautan ke Tarik kembali sebuah versi
  1. Push versi berikutnya yang berisi perbaikan.
  2. Tandai versi yang buruk di daftar update supaya instalasi tidak menawarkannya.
  3. Biarkan tag-nya.

Kalau tidak berhasil

Tautan ke Kalau tidak berhasil

Gejala. notes.py --check keluar dengan kode 1. Penyebab. File catatan melanggar sebuah aturan. Pesannya menyebut barisnya. Solusi. Ubah file catatan, jangan pernah file di releases/out, lalu jalankan lagi.

Gejala. Workflow berhenti dengan VERSION says. Penyebab. Tag dan file VERSION berbeda. Solusi. Perbaiki VERSION di main dan push tag versi berikutnya.

File catatan rilis

Setiap teks rilis berasal dari satu file. Jangan pernah mengubah hasil buildnya dengan tangan.

Field Isi
version X.Y.Z biasa
theme Satu baris
images Daftar {registry, name}. Hanya Docker Hub holyarrs/holyarrs
docs_url Opsional. Kosong berarti tanpa tautan Docs
[[highlights]] Tepat 3, masing-masing dengan line, issues, dan shot. Issue-nya tidak muncul di baris grup mana pun
[groups] Baris per tempat. New adalah bawaan. Lainnya diawali Changed: , Fixed: , atau Docs: . Masing-masing diakhiri dengan issue-nya, seperti (#46). Tempat dengan kurang dari 3 baris masuk ke Also new
Opsional [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Bagian yang kosong disembunyikan

Pakai login GitHub hanya kalau sudah diketahui, di file catatan atau di releases/credits-map.json.

Urutan isi: theme, Highlights, tempat (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, baris statistik.

Output di releases/out/<version>/ Dipakai untuk
changelog.md Entri changelog
github.md Isi rilis GitHub
update-notes.json Catatan yang ditampilkan aplikasi
reddit.txt Posting Reddit
discord-dm.txt, discord-announce.md Discord. Masing-masing di bawah 1.000 karakter
roadmap-card.json Kartu roadmap

notes.py menerima --file (file catatan lain), --map (peta kredit lain), --out (folder output lain), dan --date. --check memberi peringatan untuk baris yang panjang dan hampir sama.

Workflow image

Workflow HolyArrs - Release dimulai saat tag versi di-push. Ada tiga langkah:

  1. Bangun dan push image untuk linux/amd64, linux/arm64, dan linux/arm/v7, dengan tag versi dan latest.
  2. Perbarui deskripsi Docker Hub dari README.md.
  3. Publikasikan rilis GitHub dengan bagian CHANGELOG.md untuk versi ini.
Daftar update

Aplikasi membaca daftar update yang bertanda tangan. Setiap versi menambahkan entrinya dan menandatanganinya. Kunci penandatanganan tidak pernah masuk ke repo. HolyArrs menolak daftar yang tidak bisa diverifikasi.

Setelah sebuah versi keluar, periksa bahwa label versi image cocok dengan tag, dan pantau issue baru selama hari pertama:

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

deploy/release/nas-template.py menulis template pengguna Unraid untuk satu image tertentu. Script ini tidak mengunduh, memasang, atau mempublikasikan apa pun.

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

Ganti <digest> dan <pool>.

Flag Catatan
--image Digest manifest registry, bukan ID image Docker
--config Path pool. Alat ini menolak /mnt/user dan /mnt/user0
--movies, --tv, --music, --downloads Opsional. Path yang terpisah berarti mount yang terpisah, jadi impor menyalin
--port Bawaannya 6262
--allowed-hosts Opsional, nama host dipisah koma
--output File XML yang ditulis

Template ini menetapkan PUID=99, PGID=100, dan UMASK=022. Beri akun itu izin tulis ke media uji. Taruh file di /boot/config/plugins/dockerMan/templates-user/ dan pilih di bawah Docker > Add Container > Template (Tambah Container > Template).

HolyArrs gratis. Kalau ini menghemat waktumu, beri bintang di GitHub, jadi sponsor atau traktir saya kopi.