AgentSkillsCN

deploy

为 OCI-mc Discord 机器人部署工作流。当您需要部署代码、推送到主分支、检查 GitHub Actions,或排查部署失败问题时,可使用此技能。

SKILL.md
--- frontmatter
name: deploy
description: Deploy workflow for OCI-mc Discord bot. Use when deploying code, pushing to main, checking GitHub Actions, or troubleshooting deployment failures.

Deploy

Quick Start

bash
# 1. developブランチに切り替え
git checkout develop

# 2. 変更をコミット
git add <files>
git commit -m "feat: 変更内容"

# 3. lint確認(必須)
ruff check . --select=E,F,W --ignore=E501 --exclude=venv

# 4. developにpush
git push origin develop

# 5. PRを作成してmainにマージ
gh pr create --base main --head develop

重要: featureブランチは作成しない。すべての開発はdevelopブランチで直接行う。

Workflow

ブランチ戦略

ブランチ用途CIデプロイ
develop開発用lint/構文チェックなし
main本番用lint/構文チェックOCI自動デプロイ

デプロイフロー

code
developで開発
    |
ruff check . でlint確認
    |
git push origin develop
    |
CI成功を確認
    |
gh pr create --base main
    |
PRマージ
    |
GitHub Actionsが自動デプロイ
    |
rsync → /opt/minecraft/bot/
    |
systemctl restart discord-bot
    |
Discordに通知

Important Notes

  1. mainへの直接pushは禁止 - 必ずdevelop経由でPRを作成する
  2. lint必須 - CIで同じチェックが走るため、ローカルで通らないコードはpushしない
  3. mainへのpushはサーバー再起動を伴う - Minecraftサーバーも一時停止する(auto-start機能で自動復旧)

Related Files

  • .github/workflows/deploy.yml - デプロイワークフロー(main push時)
  • .github/workflows/pr-merged.yml - PRマージ通知(コミット一覧付き)
  • .github/workflows/ci.yml - CI設定
  • CLAUDE.md - コード規約・チェックリスト
  • .agent/development.md - ブランチ戦略詳細

Discord通知

イベントワークフロー内容
main pushdeploy.ymlデプロイ成功/失敗 + コミットメッセージ
PRマージpr-merged.ymlPRタイトル + コミット一覧(階層表示)
develop push(CI失敗時)ci.ymlCI失敗通知

Troubleshooting

CI失敗時

bash
# エラー内容を確認
gh run view --log-failed

# ローカルでlint実行
ruff check . --select=E,F,W --ignore=E501 --exclude=venv

# 自動修正
ruff check . --fix

デプロイ失敗時

bash
# GitHub Actions ログ確認
gh run list --limit 5
gh run view <run_id> --log

# リモートでサービス状態確認
ssh ubuntu@<OCI_IP> "sudo systemctl status discord-bot"
ssh ubuntu@<OCI_IP> "sudo journalctl -u discord-bot -n 50"

デプロイ後にボットが起動しない

  1. .envファイルの存在確認
  2. DISCORD_TOKENの有効性確認
  3. Python依存関係の確認: pip install -r requirements.txt