ข้ามไปยังเนื้อหา

การออกเวอร์ชัน

ผู้เชี่ยวชาญ

เปลี่ยนบิลด์ที่ทดสอบแล้วให้เป็นเวอร์ชันที่ออกใช้งาน หน้านี้สำหรับผู้ดูแลโปรเจกต์

  • การตรวจสอบทุกข้อในหน้าการทดสอบผ่านหมด รวมถึงการรัน end-to-end เต็มชุด และการรันยาวกับการรัน fault
  • CHANGELOG.md มีเวอร์ชันใหม่แล้ว
  • ติดตั้ง Python 3 สำหรับสคริปต์ออกเวอร์ชัน
  1. เขียน releases/notes-<version>.toml เช่น releases/notes-1.0.0.toml ดูไฟล์บันทึกการออกเวอร์ชัน

  2. ตรวจไฟล์:

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

    ต้องไม่เห็นข้อผิดพลาด คำต้องห้าม em dash วันที่ คำพูดเรื่องเปิดตัว หรือ highlight ที่ซ้ำ จะทำให้คำสั่งจบด้วยรหัส 1

  3. สร้างข้อความของเวอร์ชัน:

    Terminal window
    python deploy/release/notes.py 1.0.0

    จะได้ไฟล์ 7 ไฟล์ใน releases/out/1.0.0/

  4. สร้าง image และเริ่มด้วยโฟลเดอร์คอนฟิกใหม่:

    Terminal window
    docker build --file deploy/Dockerfile .

    จะเห็นตัวช่วยตั้งค่าครั้งแรก

  5. รันการตรวจสอบทุกข้อในหน้าการทดสอบบนเครื่องของคุณ เทสต์รันในเครื่อง ไม่ได้รันบน GitHub

  6. ส่งเวอร์ชันให้ผู้ดูแลโปรเจกต์ ผู้ดูแลจะ push แท็กเวอร์ชันบน main และนั่นคือสิ่งที่เริ่มการออกเวอร์ชัน

สิ่งที่ตั้งชื่อ ชื่อ
Git tag (ผู้ดูแลโปรเจกต์เป็นคน push) 1.0.0 (ตัวเลขล้วน ไม่มี v)
Image tag และ version ในไฟล์บันทึก 1.0.0

Workflow จะเริ่มเฉพาะกับแท็กรูปแบบ X.Y.Z และจะหยุดเมื่อแท็กไม่ตรงกับไฟล์ VERSION

ทุกเวอร์ชันจะ push แท็กเวอร์ชันของตัวเองและ :latest

  1. Push เวอร์ชันถัดไปที่แก้ปัญหาแล้ว
  2. ทำเครื่องหมายเวอร์ชันที่มีปัญหาในรายการอัปเดต เครื่องที่ติดตั้งไว้จะไม่ได้รับข้อเสนอเวอร์ชันนั้น
  3. เก็บแท็กไว้

อาการ. notes.py --check จบด้วยรหัส 1 สาเหตุ. ไฟล์บันทึกผิดกฎข้อหนึ่ง ข้อความจะบอกบรรทัดที่ผิด วิธีแก้. แก้ไฟล์บันทึก ห้ามแก้ไฟล์ใน releases/out แล้วรันใหม่

อาการ. Workflow หยุดพร้อมข้อความ VERSION says สาเหตุ. แท็กกับไฟล์ VERSION ไม่ตรงกัน วิธีแก้. แก้ VERSION บน main แล้ว push แท็กเวอร์ชันถัดไป

ไฟล์บันทึกการออกเวอร์ชัน

ข้อความทุกชิ้นของเวอร์ชันมาจากไฟล์เดียว ห้ามแก้สิ่งที่ไฟล์นี้สร้างขึ้นด้วยมือ

ฟิลด์ เนื้อหา
version X.Y.Z ล้วน
theme หนึ่งบรรทัด
images รายการของ {registry, name} เฉพาะ Docker Hub holyarrs/holyarrs
docs_url ไม่บังคับ ถ้าว่างจะไม่มีลิงก์ Docs
[[highlights]] 3 รายการพอดี แต่ละรายการมี line, issues และ shot issue ของมันจะไม่ปรากฏในบรรทัดของกลุ่มใด
[groups] บรรทัดของแต่ละหมวด New เป็นค่าเริ่มต้น ที่เหลือขึ้นต้นด้วย Changed: , Fixed: หรือ Docs: แต่ละบรรทัดลงท้ายด้วย issue ของมัน เช่น (#46) หมวดที่มีน้อยกว่า 3 บรรทัดจะไปอยู่ใต้ Also new
ไม่บังคับ [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats] ส่วนที่ว่างจะถูกซ่อน

ใช้ชื่อบัญชี GitHub เฉพาะเมื่อรู้แน่ชัด ในไฟล์บันทึกหรือใน 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 release
update-notes.json บันทึกที่แอปแสดง
reddit.txt โพสต์ใน Reddit
discord-dm.txt, discord-announce.md Discord แต่ละไฟล์ยาวไม่เกิน 1,000 ตัวอักษร
roadmap-card.json การ์ดโรดแมป

notes.py รับ --file (ไฟล์บันทึกอื่น), --map (credits map อื่น), --out (โฟลเดอร์ผลลัพธ์อื่น) และ --date ส่วน --check จะเตือนเมื่อบรรทัดยาวหรือเกือบซ้ำกัน

Workflow ของ image

Workflow HolyArrs - Release เริ่มเมื่อ push แท็กเวอร์ชัน มี 3 ขั้นตอน

  1. สร้างและ push image สำหรับ linux/amd64, linux/arm64 และ linux/arm/v7 พร้อมแท็กเวอร์ชันและ latest
  2. อัปเดตคำอธิบายบน Docker Hub จาก README.md
  3. เผยแพร่ GitHub release พร้อมส่วนของเวอร์ชันนี้ใน CHANGELOG.md
รายการอัปเดต

แอปอ่านรายการอัปเดตที่เซ็นชื่อไว้ ทุกเวอร์ชันจะเพิ่มรายการของตัวเองและเซ็นชื่อ คีย์สำหรับเซ็นห้ามอยู่ใน repo HolyArrs ปฏิเสธรายการที่ตรวจสอบไม่ได้

หลังออกเวอร์ชัน ให้ตรวจว่า label เวอร์ชันของ image ตรงกับแท็ก และจับตาดู issue ใหม่ในวันแรก:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
เทมเพลต Unraid สำหรับทดสอบ

deploy/release/nas-template.py เขียนเทมเพลตผู้ใช้ของ Unraid สำหรับ image เวอร์ชันที่ระบุตรง ๆ หนึ่งตัว ไม่ได้ pull ติดตั้ง หรือเผยแพร่อะไร

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> และ <pool>

Flag หมายเหตุ
--image Digest ของ manifest บน registry ไม่ใช่ Docker image ID
--config พาธบน pool เครื่องมือจะปฏิเสธ /mnt/user และ /mnt/user0
--movies, --tv, --music, --downloads ไม่บังคับ พาธที่แยกกันจะเป็นการเมานต์แยกกัน การนำเข้าจึงเป็นการคัดลอก
--port ค่าเริ่มต้นคือ 6262
--allowed-hosts ไม่บังคับ เป็นชื่อโฮสต์คั่นด้วยจุลภาค
--output ไฟล์ XML ที่จะเขียน

เทมเพลตตั้ง PUID=99, PGID=100 และ UMASK=022 ให้บัญชีนั้นมีสิทธิ์เขียนในสื่อที่ใช้ทดสอบ วางไฟล์ใน /boot/config/plugins/dockerMan/templates-user/ แล้วเลือกที่ Docker > Add Container > Template (Docker > เพิ่ม Container > เทมเพลต)

HolyArrs ใช้ได้ฟรี ถ้าช่วยประหยัดเวลาคุณได้ กดดาวบน GitHub, สนับสนุนโปรเจกต์ หรือ เลี้ยงกาแฟผู้พัฒนา