summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 }}