summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-08-05 04:37:05 +0900
committerSho Sakuma <me@m1sk9.dev>2026-08-05 04:37:05 +0900
commit89c8e68341b0ff9cb3c69f0ff6e4c34bbec43ae9 (patch)
tree091769f55efd95a6ecbab9d7ff6a1015c959a693
parent8bff9150039b4d94830e43d0688bc03c6a082e64 (diff)
downloadLunaticChat-89c8e68341b0ff9cb3c69f0ff6e4c34bbec43ae9.tar.gz
LunaticChat-89c8e68341b0ff9cb3c69f0ff6e4c34bbec43ae9.tar.bz2
LunaticChat-89c8e68341b0ff9cb3c69f0ff6e4c34bbec43ae9.zip
ci: point release notes at the documentation site
Every release emitted a skeleton of six empty headings that had to be filled in by hand on the draft, and Modrinth linked to the GitHub release, so a reader needed two hops to reach notes that might never have been written. Both now link straight to the changelog page for the released version, built from the tag, so the notes live in exactly one place. This makes the release depend on that page being deployed, which the release skill now checks for. Co-Authored-By: Claude <noreply@anthropic.com>
-rw-r--r--.claude/skills/release/SKILL.md36
-rw-r--r--.github/workflows/release-paper.yaml30
-rw-r--r--.github/workflows/release-velocity.yaml30
-rw-r--r--.github/workflows/release.yaml34
4 files changed, 50 insertions, 80 deletions
diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md
index ec03038..7b7ea29 100644
--- a/.claude/skills/release/SKILL.md
+++ b/.claude/skills/release/SKILL.md
@@ -2,7 +2,7 @@
description: リリースの準備とタグ作成を行う。引数に paper, velocity, both のいずれかを指定。
disable-model-invocation: true
argument-hint: [paper|velocity|both]
-allowed-tools: Bash(./gradlew *), Bash(git *), Read, Grep
+allowed-tools: Bash(./gradlew *), Bash(git *), Bash(gh *), Read, Grep, WebFetch
---
# Release
@@ -28,9 +28,43 @@ allowed-tools: Bash(./gradlew *), Bash(git *), Read, Grep
- `velocity` → `git tag velocity/v{velocityVersion}`
- `both` → `git tag v{paperVersion}` (Paper/Velocity バージョンが異なる場合は注意を促す)
5. タグを push するかユーザーに確認する (`git push origin {tag}`)
+6. push 後は「リリース後の監視」に進む
+
+## リリース後の監視
+
+タグを push したら、リリースワークフローが完走するまで見届ける。ワークフローは `validate` → `build` → `release` の 3 ジョブで、`release` ジョブが GitHub Release の作成と Modrinth への公開を行う。
+
+1. ワークフローの起動を確認する:
+ ```
+ gh run list --limit 5
+ ```
+ タグ名に対応するワークフロー (`Release Paper` / `Release Velocity` / `Release`) が起動していること。数十秒待っても現れない場合はタグの push 自体が失敗していないか確認する
+2. 完了まで追跡する:
+ ```
+ gh run watch {run-id} --exit-status
+ ```
+3. 失敗した場合はジョブごとに原因を切り分け、ユーザーに報告する:
+ ```
+ gh run view {run-id} --log-failed
+ ```
+ - `validate` で失敗 → タグのバージョンと `gradle.properties` の不一致、または同名 Release が既に存在する
+ - `build` で失敗 → リリース前チェックで通っていたはずなので、CI 環境固有の問題を疑う
+ - `release` で失敗 → GitHub Release 作成か Modrinth 公開の失敗。Modrinth 側だけ失敗した場合、GitHub Release は既に作られているため再実行すると重複しうる点に注意する
+4. 成功したら成果物を確認する:
+ ```
+ gh release view {tag} --json isDraft,assets,url
+ ```
+ - **Release は draft で作成される**。JAR が添付されていることを確認したうえで、公開するかユーザーに確認する (`gh release edit {tag} --draft=false`)
+ - 添付ファイル名が期待どおりであること (Paper は `LunaticChat-{version}.jar`、Velocity は `LunaticChat-{version}-velocity.jar`)
+5. リリースノートのリンク先が存在することを確認する。Release と Modrinth の changelog はどちらもドキュメントサイトを指しているため、対応するページが未デプロイだとリンク切れになる:
+ - Paper: `https://lc.m1sk9.dev/ja/changelog/paper/v{paperVersion}`
+ - Velocity: `https://lc.m1sk9.dev/ja/changelog/velocity/v{velocityVersion}`
+6. Modrinth に該当バージョンが公開されているかユーザーに確認を依頼する (Modrinth のバージョン一覧は API トークンなしでは追えないため、ここは目視確認を頼む)
## 注意事項
- タグの作成と push は必ずユーザーの確認を得てから行うこと
- `both` の場合、Paper と Velocity のバージョンが異なる場合はその旨を明示すること
- プロトコルバージョン (`ProtocolVersion.kt`) の変更がある場合は、後方互換テスト (`ProtocolBackwardCompatibilityTest`) が通っていることを確認すること
+- リリースは draft で作られる。ワークフローが成功しても、draft を公開するまでリリースは完了していない
+- 失敗したワークフローの再実行 (`gh run rerun`) は、`validate` の「Release が既に存在しないこと」チェックに引っかかる可能性がある。再実行の前に GitHub Release とタグの状態を確認し、対処方針をユーザーに提案すること
diff --git a/.github/workflows/release-paper.yaml b/.github/workflows/release-paper.yaml
index 9459ed6..69b68e0 100644
--- a/.github/workflows/release-paper.yaml
+++ b/.github/workflows/release-paper.yaml
@@ -94,35 +94,13 @@ jobs:
VERSION=${{ needs.validate.outputs.version }}
JAR_NAME=${{ needs.validate.outputs.jar_name }}
- cat > /tmp/release-notes.md <<EOF
- LunaticChat Paper/Folia v${VERSION} has been released.
-
- ## Download
-
- - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/${TAG_NAME})
- - [Modrinth (Paper/Folia)](https://modrinth.com/plugin/lunaticchat/version/${VERSION})
-
- ## What's new
-
- ### Highlights
-
- ### New Features
-
- ### Improvements
-
- ### Changes
-
- ### Bug Fixes
-
- ### Notes
-
- EOF
-
+ # The notes point at the changelog on the documentation site rather than
+ # repeating it here, so the release notes live in exactly one place.
gh release create "$TAG_NAME" \
"platform-paper/build/libs/$JAR_NAME" \
--title "v${VERSION} (Paper/Folia)" \
--draft \
- --notes-file /tmp/release-notes.md
+ --notes "Release notes: [Paper/Folia v${VERSION}](https://lc.m1sk9.dev/ja/changelog/paper/v${VERSION})"
- name: Publish to Modrinth (Paper/Folia)
uses: cloudnode-pro/modrinth-publish@8dc596b20b94959bf244180235d90729d05a674f # v2
@@ -133,7 +111,7 @@ jobs:
version: ${{ needs.validate.outputs.version }}
channel: ${{ env.MODRINTH_CHANNEL }}
changelog: |-
- Please refer to the [GitHub release](https://github.com/m1sk9/LunaticChat/releases/tag/paper/v${{ needs.validate.outputs.version }}) for update details.
+ Please refer to the [release notes](https://lc.m1sk9.dev/ja/changelog/paper/v${{ needs.validate.outputs.version }}) for update details.
loaders: |-
paper
folia
diff --git a/.github/workflows/release-velocity.yaml b/.github/workflows/release-velocity.yaml
index e71eef9..82216a6 100644
--- a/.github/workflows/release-velocity.yaml
+++ b/.github/workflows/release-velocity.yaml
@@ -96,35 +96,13 @@ jobs:
VERSION=${{ needs.validate.outputs.version }}
JAR_NAME=${{ needs.validate.outputs.jar_name }}
- cat > /tmp/release-notes.md <<EOF
- LunaticChat Velocity v${VERSION} has been released.
-
- ## Download
-
- - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/${TAG_NAME})
- - [Modrinth (Velocity)](https://modrinth.com/plugin/lunaticchat/version/${VERSION}-velocity)
-
- ## What's new
-
- ### Highlights
-
- ### New Features
-
- ### Improvements
-
- ### Changes
-
- ### Bug Fixes
-
- ### Notes
-
- EOF
-
+ # The notes point at the changelog on the documentation site rather than
+ # repeating it here, so the release notes live in exactly one place.
gh release create "$TAG_NAME" \
"platform-velocity/build/libs/$JAR_NAME" \
--title "v${VERSION} (Velocity)" \
--draft \
- --notes-file /tmp/release-notes.md
+ --notes "Release notes: [Velocity v${VERSION}](https://lc.m1sk9.dev/ja/changelog/velocity/v${VERSION})"
- name: Publish to Modrinth (Velocity)
uses: cloudnode-pro/modrinth-publish@8dc596b20b94959bf244180235d90729d05a674f # v2
@@ -135,7 +113,7 @@ jobs:
version: ${{ needs.validate.outputs.version }}-velocity
channel: ${{ env.MODRINTH_CHANNEL }}
changelog: |-
- Please refer to the [GitHub release](https://github.com/m1sk9/LunaticChat/releases/tag/velocity/v${{ needs.validate.outputs.version }}) for update details.
+ Please refer to the [release notes](https://lc.m1sk9.dev/ja/changelog/velocity/v${{ needs.validate.outputs.version }}) for update details.
loaders: velocity
game-versions: ${{ env.MODRINTH_VELOCITY_GAME_VERSIONS }}
files: platform-velocity/build/libs/${{ needs.validate.outputs.jar_name }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 48be8f8..bd0a692 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -100,33 +100,13 @@ jobs:
PAPER_JAR_NAME=${{ needs.validate.outputs.paper_jar_name }}
VELOCITY_JAR_NAME=${{ needs.validate.outputs.velocity_jar_name }}
+ # The notes point at the changelog on the documentation site rather than
+ # repeating it here, so the release notes live in exactly one place.
cat > /tmp/release-notes.md <<EOF
- LunaticChat ${TAG_NAME} has been released.
-
- | Platform | Version |
- |----------|---------|
- | Paper/Folia | ${PAPER_VERSION} |
- | Velocity | ${VELOCITY_VERSION} |
-
- ## Download
-
- - [GitHub](https://github.com/m1sk9/LunaticChat/releases/tag/${TAG_NAME})
- - Modrinth: [Paper/Folia](https://modrinth.com/plugin/lunaticchat/version/${PAPER_VERSION}), [Velocity](https://modrinth.com/plugin/lunaticchat/version/${VELOCITY_VERSION}-velocity)
-
- ## What's new
-
- ### Highlights
-
- ### New Features
-
- ### Improvements
-
- ### Changes
-
- ### Bug Fixes
-
- ### Notes
+ Release notes:
+ - [Paper/Folia v${PAPER_VERSION}](https://lc.m1sk9.dev/ja/changelog/paper/v${PAPER_VERSION})
+ - [Velocity v${VELOCITY_VERSION}](https://lc.m1sk9.dev/ja/changelog/velocity/v${VELOCITY_VERSION})
EOF
gh release create "$TAG_NAME" \
@@ -145,7 +125,7 @@ jobs:
version: ${{ needs.validate.outputs.paper_version }}
channel: ${{ env.MODRINTH_CHANNEL }}
changelog: |-
- Please refer to the [GitHub release](https://github.com/m1sk9/LunaticChat/releases/tag/${{ github.ref_name }}) for update details.
+ Please refer to the [release notes](https://lc.m1sk9.dev/ja/changelog/paper/v${{ needs.validate.outputs.paper_version }}) for update details.
loaders: |-
paper
folia
@@ -161,7 +141,7 @@ jobs:
version: ${{ needs.validate.outputs.velocity_version }}-velocity
channel: ${{ env.MODRINTH_CHANNEL }}
changelog: |-
- Please refer to the [GitHub release](https://github.com/m1sk9/LunaticChat/releases/tag/${{ github.ref_name }}) for update details.
+ Please refer to the [release notes](https://lc.m1sk9.dev/ja/changelog/velocity/v${{ needs.validate.outputs.velocity_version }}) for update details.
loaders: velocity
game-versions: ${{ env.MODRINTH_VELOCITY_GAME_VERSIONS }}
files: platform-velocity/build/libs/${{ needs.validate.outputs.velocity_jar_name }}