diff options
| -rw-r--r-- | .claude/skills/release/SKILL.md | 36 | ||||
| -rw-r--r-- | .github/workflows/release-paper.yaml | 30 | ||||
| -rw-r--r-- | .github/workflows/release-velocity.yaml | 30 | ||||
| -rw-r--r-- | .github/workflows/release.yaml | 34 |
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 }} |
