Bỏ qua để đến nội dung

Phát hành

Nâng cao

Biến một bản build đã kiểm thử thành một phiên bản. Trang này dành cho người bảo trì.

  • Mọi bước kiểm tra trong Kiểm thử đều đạt, kể cả một lần chạy end-to-end đầy đủ và các lần chạy dài và chạy lỗi.
  • CHANGELOG.md đã có phiên bản mới.
  • Python 3 đã được cài cho các script phát hành.
  1. Viết releases/notes-<version>.toml, ví dụ releases/notes-1.0.0.toml. Xem Tệp ghi chú phiên bản.

  2. Kiểm tra nó:

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

    Bạn sẽ không thấy lỗi nào. Một từ bị cấm, dấu gạch ngang dài, ngày tháng, lời quảng bá ra mắt hay một điểm nổi bật bị lặp sẽ làm lệnh thoát với mã 1.

  3. Tạo các văn bản phát hành:

    Terminal window
    python deploy/release/notes.py 1.0.0

    Bạn sẽ thấy 7 tệp trong releases/out/1.0.0/.

  4. Build image và khởi động nó với một thư mục cấu hình mới:

    Terminal window
    docker build --file deploy/Dockerfile .

    Bạn sẽ thấy trình hướng dẫn lần chạy đầu tiên.

  5. Chạy mọi bước kiểm tra trong Kiểm thử trên máy của bạn. Các bài kiểm thử chạy trên máy, không chạy trên GitHub.

  6. Giao số phiên bản cho người bảo trì. Người bảo trì đẩy tag phiên bản lên main, và việc đó bắt đầu quá trình phát hành.

Thứ Tên
Git tag (do người bảo trì đẩy lên) 1.0.0 (số thuần, không có v)
Tag của image và version trong ghi chú 1.0.0

Quy trình chỉ bắt đầu với tag dạng X.Y.Z và dừng khi tag khác với tệp VERSION.

Mỗi phiên bản đẩy lên tag phiên bản của nó và :latest.

  1. Đẩy phiên bản kế tiếp kèm bản sửa.
  2. Đánh dấu phiên bản lỗi trong danh sách cập nhật để các bản cài không đề nghị nó.
  3. Giữ lại tag.

Triệu chứng. notes.py --check thoát với mã 1. Nguyên nhân. Tệp ghi chú vi phạm một quy tắc. Thông báo nêu rõ dòng nào. Cách khắc phục. Sửa tệp ghi chú, đừng bao giờ sửa các tệp trong releases/out, rồi chạy lại.

Triệu chứng. Quy trình dừng với thông báo VERSION says. Nguyên nhân. Tag và tệp VERSION khác nhau. Cách khắc phục. Sửa VERSION trên main và đẩy tag phiên bản kế tiếp.

Tệp ghi chú phiên bản

Mọi văn bản phát hành đều sinh ra từ một tệp. Đừng bao giờ sửa tay những gì nó tạo ra.

Trường Nội dung
version X.Y.Z thuần
theme Một dòng
images Danh sách {registry, name}. Chỉ Docker Hub holyarrs/holyarrs
docs_url Tùy chọn. Để trống nghĩa là không có liên kết Docs
[[highlights]] Đúng 3, mỗi cái có line, issues và shot. Các issue của chúng không xuất hiện trong dòng của nhóm nào
[groups] Các dòng theo từng chuyên mục. New là mặc định. Các mục khác bắt đầu bằng Changed: , Fixed: hoặc Docs: . Mỗi dòng kết thúc bằng issue của nó, như (#46). Một chuyên mục dưới 3 dòng sẽ được đưa vào Also new
Tùy chọn [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Phần trống sẽ bị ẩn

Chỉ dùng tên GitHub khi biết chắc, trong tệp ghi chú hoặc trong releases/credits-map.json.

Thứ tự phần thân: theme, Highlights, các chuyên mục (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, dòng thống kê.

Đầu ra trong releases/out/<version>/ Dùng cho
changelog.md Mục trong changelog
github.md Phần thân của bản phát hành trên GitHub
update-notes.json Ghi chú mà ứng dụng hiển thị
reddit.txt Bài đăng trên Reddit
discord-dm.txt, discord-announce.md Discord. Mỗi tệp dưới 1.000 ký tự
roadmap-card.json Thẻ lộ trình

notes.py nhận --file (một tệp ghi chú khác), --map (một bản đồ ghi công khác), --out (một thư mục đầu ra khác) và --date. --check cảnh báo về dòng quá dài và các dòng gần giống nhau.

Quy trình đăng image

Quy trình HolyArrs - Release bắt đầu khi một tag phiên bản được đẩy lên. Nó có ba bước:

  1. Build và đẩy image cho linux/amd64, linux/arm64 và linux/arm/v7, kèm tag phiên bản và latest.
  2. Cập nhật phần mô tả trên Docker Hub từ README.md.
  3. Đăng bản phát hành trên GitHub với phần của phiên bản này trong CHANGELOG.md.
Danh sách cập nhật

Ứng dụng đọc một danh sách cập nhật có chữ ký. Mỗi phiên bản thêm mục của nó và ký lên. Khóa ký không bao giờ nằm trong repo. HolyArrs từ chối một danh sách mà nó không xác minh được.

Sau một phiên bản, hãy kiểm tra nhãn phiên bản của image khớp với tag, và theo dõi các issue mới trong ngày đầu:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Mẫu thử cho Unraid

deploy/release/nas-template.py ghi ra một mẫu người dùng cho Unraid, dành cho đúng một image. Nó không kéo, không cài và không đăng gì.

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

Thay <digest> và <pool>.

Cờ Ghi chú
--image Digest manifest của registry, không phải ID của Docker image
--config Một đường dẫn pool. Công cụ từ chối /mnt/user và /mnt/user0
--movies, --tv, --music, --downloads Tùy chọn. Các đường dẫn tách biệt là các mount tách biệt, nên việc nhập sẽ sao chép
--port Mặc định là 6262
--allowed-hosts Tùy chọn, các hostname phân tách bằng dấu phẩy
--output Tệp XML cần ghi

Mẫu đặt PUID=99, PGID=100 và UMASK=022. Hãy cấp quyền ghi cho tài khoản đó trên media thử nghiệm. Đặt tệp vào /boot/config/plugins/dockerMan/templates-user/ và chọn nó trong Docker > Add Container > Template (Docker > thêm container > mẫu).

HolyArrs miễn phí. Nếu nó giúp bạn tiết kiệm thời gian, hãy gắn sao trên GitHub, tài trợ dự án hoặc mời tôi một ly cà phê.