リリース作業
上級者
テスト済みのビルドをリリースにします。このページはメンテナー向けです。
始める前に
始める前に へのリンク- テストのチェックがすべて通っていること。エンドツーエンドの全体実行と、長時間の実行、障害の実行も含みます。
CHANGELOG.mdに新しいバージョンが入っていること。- リリーススクリプト用に Python 3 がインストールされていること。
リリースを準備する
リリースを準備する へのリンク-
releases/notes-<version>.tomlを書きます。たとえばreleases/notes-1.0.0.tomlです。リリースノートのファイルを参照してください。 -
チェックします:
Terminal window python deploy/release/notes.py 1.0.0 --checkエラーが表示されなければ問題ありません。禁止されている語、em ダッシュ、日付、公開予告の文言、ハイライトの issue の重複があると、終了コード 1 で終わります。
-
リリース用のテキストを作ります:
Terminal window python deploy/release/notes.py 1.0.0releases/out/1.0.0/に 7 つのファイルができます。 -
イメージをビルドし、新しい設定フォルダーで起動します:
Terminal window docker build --file deploy/Dockerfile .初回セットアップのウィザードが表示されます。
-
テストのチェックをすべて自分のマシンで実行します。テストは GitHub 上ではなく、ローカルで実行します。
-
バージョンをメンテナーに引き渡します。メンテナーが main にバージョンタグを push すると、リリースが始まります。
オプション
オプション へのリンクバージョンとタグの名前
バージョンとタグの名前 へのリンク| 対象 | 名前 |
|---|---|
| Git タグ(メンテナーが push) | 1.0.0(数字のみ、v なし) |
イメージタグとノートの version |
1.0.0 |
ワークフローは X.Y.Z 形式のタグでだけ始まり、タグが VERSION ファイルと違う場合は停止します。
イメージタグ
イメージタグ へのリンク各リリースは、そのバージョンタグと :latest を push します。
リリースを取り消す
リリースを取り消す へのリンク- 修正を入れた次のバージョンを push します。
- アップデートリストで問題のあるバージョンに印を付け、インストール済みの環境に提示されないようにします。
- タグは残します。
うまくいかないとき
うまくいかないとき へのリンク症状。 notes.py --check が終了コード 1 で終わる。
原因。 ノートのファイルがルールに違反しています。メッセージに行が出ています。
対処。 ノートのファイルを編集し、もう一度実行します。releases/out 内のファイルは編集しません。
症状。 ワークフローが VERSION says で停止する。
原因。 タグと VERSION ファイルが違っています。
対処。 main の VERSION を直し、次のバージョンタグを push します。
上級者向け
上級者向け へのリンクリリースノートのファイル
リリース用のテキストはすべて 1 つのファイルから作られます。作られたものを手で編集してはいけません。
| フィールド | 内容 |
|---|---|
version |
X.Y.Z のみ |
theme |
1 行 |
images |
{registry, name} のリスト。Docker Hub の holyarrs/holyarrs のみ |
docs_url |
任意。空の場合は Docs リンクなし |
[[highlights]] |
ちょうど 3 つ。それぞれに line、issues、shot があります。ここに書いた issue は、グループの行には出しません |
[groups] |
場所ごとの行。既定は New です。それ以外は Changed: 、Fixed: 、Docs: で始めます。各行は (#46) のように issue で終わります。行が 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、stats の行。
releases/out/<version>/ 内の出力 |
用途 |
|---|---|
changelog.md |
変更履歴のエントリ |
github.md |
GitHub リリースの本文 |
update-notes.json |
アプリが表示するノート |
reddit.txt |
Reddit の投稿 |
discord-dm.txt, discord-announce.md |
Discord。どちらも 1,000 文字未満に収めます |
roadmap-card.json |
ロードマップのカード |
notes.py は --file(別のノートのファイル)、--map(別のクレジットマップ)、--out(別の出力フォルダー)、--date を受け取ります。--check は長い行と、ほぼ同じ内容の繰り返しに警告を出します。
イメージのワークフロー
HolyArrs - Release ワークフローは、バージョンタグが push されると始まります。ステップは 3 つです:
linux/amd64、linux/arm64、linux/arm/v7用のイメージをビルドし、バージョンタグとlatestを付けて push します。README.mdから Docker Hub の説明を更新します。- このバージョンの
CHANGELOG.mdのセクションを使って GitHub リリースを公開します。
アップデートリスト
アプリは署名付きのアップデートリストを読みます。各リリースは自分のエントリを追加し、署名します。署名用のキーをリポジトリに入れることはありません。HolyArrs は検証できないリストを拒否します。
リリース後は、イメージのバージョンラベルがタグと一致していることを確認し、最初の 1 日は新しい issue を見ておきます:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsUnraid のテスト用テンプレート
deploy/release/nas-template.py は、特定の 1 つのイメージに対する Unraid のユーザーテンプレートを書き出します。pull、インストール、公開は一切行いません。
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> を置き換えます。
| フラグ | 補足 |
|---|---|
--image |
レジストリのマニフェストダイジェスト。Docker のイメージ ID ではありません |
--config |
プールのパス。/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 > コンテナを追加 > テンプレート)で選びます。
関連ページ
関連ページ へのリンクHolyArrs は無料です。時間の節約になったら、GitHub でスターを付ける、スポンサーになる、コーヒーをおごるのいずれかで応援してください。