Agent Skills: trigger-deploy Skill

|

UncategorizedID: semicolon-devteam/semo/trigger-deploy

Install this agent skill to your local

pnpm dlx add-skill https://github.com/semicolon-devteam/semo/tree/HEAD/semo-system/semo-skills/trigger-deploy

Skill Files

Browse the full folder contents for trigger-deploy.

Download Skill

Loading file treeโ€ฆ

semo-system/semo-skills/trigger-deploy/SKILL.md

Skill Metadata

Name
trigger-deploy
Description
|

๐Ÿ”” ํ˜ธ์ถœ ์‹œ ๋ฉ”์‹œ์ง€: ์ด Skill์ด ํ˜ธ์ถœ๋˜๋ฉด ๋ฐ˜๋“œ์‹œ [SEMO] Skill: trigger-deploy ์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒซ ์ค„์— ์ถœ๋ ฅํ•˜์„ธ์š”.

trigger-deploy Skill

GitHub Actions ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ ๋ณ„์นญ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ๋ฐ ์ƒํƒœ ์กฐํšŒ

โš ๏ธ deploy-service์™€ ํ˜ผ๋™ ์ฃผ์˜: Docker/SSH ์ง์ ‘ ๋ฐฐํฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด deploy-service ์‚ฌ์šฉ

๐Ÿ”ด trigger-deploy vs deploy-service ์„ ํƒ ๊ธฐ์ค€

| ์กฐ๊ฑด | ์„ ํƒ ์Šคํ‚ฌ | ์ด์œ  | |------|----------|------| | ํ”„๋กœ์ ํŠธ ๋ณ„์นญ ์‚ฌ์šฉ (๋žœ๋“œ, ์˜คํ”ผ์Šค ๋“ฑ) | deployer | projects.md์— ๋ณ„์นญ ๋“ฑ๋ก | | "Milestone", "๋ฆด๋ฆฌ์ฆˆ" ์–ธ๊ธ‰ | deployer | GitHub ๋ฆด๋ฆฌ์ฆˆ ์›Œํฌํ”Œ๋กœ์šฐ | | GitHub Actions ๊ธฐ๋ฐ˜ ๋ฐฐํฌ | deployer | CI/CD ์ž๋™ ํŠธ๋ฆฌ๊ฑฐ | | "Docker ๋นŒ๋“œ", "PM2" ์–ธ๊ธ‰ | deploy-service | SSH ์ง์ ‘ ์ œ์–ด | | SSH ์ ‘๊ทผ ํ•„์š”ํ•œ ์ง์ ‘ ๋ฐฐํฌ | deploy-service | ์›๊ฒฉ ์„œ๋ฒ„ ์ง์ ‘ ์ ‘๊ทผ | | ms-* ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ | deploy-service | Docker + PM2 ๋ฐฉ์‹ |

Semicolon ๋ธŒ๋žœ์น˜ ์ „๋žต

| ํ™˜๊ฒฝ | ๋ธŒ๋žœ์น˜/ํƒœ๊ทธ | ํŠธ๋ฆฌ๊ฑฐ | ์„ค๋ช… | |------|-------------|--------|------| | DEV | dev | push | ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜) | | STG | release-x.x.x | Milestone Close | ๋งˆ์ผ์Šคํ†ค ๊ธฐ๋ฐ˜ ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜ | | PRD | vx.x.x ํƒœ๊ทธ | Production Tagging | ๋ฆด๋ฆฌ์ฆˆ ํƒœ๊ทธ |

ํ”„๋กœ์ ํŠธ ๋ณ„์นญ ์ฐธ์กฐ

๋ฐ˜๋“œ์‹œ ๋จผ์ € ์ฝ์„ ํŒŒ์ผ: .claude/memory/projects.md

์ด ํŒŒ์ผ์—์„œ ํ”„๋กœ์ ํŠธ ๋ณ„์นญ๊ณผ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Workflow

1. ํ”„๋กœ์ ํŠธ ์‹๋ณ„

์ž…๋ ฅ: "๋žœ๋“œ stg ๋ฐฐํฌํ•ด์ค˜"

1. .claude/memory/projects.md ์ฝ๊ธฐ
2. "๋žœ๋“œ" โ†’ semicolon-devteam/cm-land ๋งคํ•‘
3. "stg" โ†’ Milestone close ๋ฐฉ์‹ ํ™•์ธ

2. ํ™˜๊ฒฝ๋ณ„ ๋ฐฐํฌ ์ ˆ์ฐจ

DEV ๋ฐฐํฌ

# dev ๋ธŒ๋žœ์น˜ ์ƒํƒœ ํ™•์ธ ๋ฐ push
gh api repos/{owner}/{repo}/branches/dev

STG ๋ฐฐํฌ

# 1. ์—ด๋ฆฐ Milestone ๋ชฉ๋ก ์กฐํšŒ
gh api repos/{owner}/{repo}/milestones --jq '.[] | select(.state=="open")'

# 2. ์‚ฌ์šฉ์ž์—๊ฒŒ Milestone ์„ ํƒ ์š”์ฒญ

# 3. Milestone Close
gh api repos/{owner}/{repo}/milestones/{number} -X PATCH -f state=closed

PRD ๋ฐฐํฌ

# 1. ์—ด๋ฆฐ Milestone ์กฐํšŒ
gh api repos/{owner}/{repo}/milestones --jq '.[] | select(.state=="open")'

# 2. source-tag ๋ผ๋ฒจ ํ™•์ธ/์ถ”๊ฐ€
gh api repos/{owner}/{repo}/labels --jq '.[].name' | grep source-tag

# 3. Milestone์— ๋ผ๋ฒจ์ด ์—ฐ๊ฒฐ๋œ ์ด์Šˆ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ Close
gh api repos/{owner}/{repo}/milestones/{number} -X PATCH -f state=closed

์ถœ๋ ฅ ํฌ๋งท

[SEMO] deployer: ํ”„๋กœ์ ํŠธ ์‹๋ณ„ ์™„๋ฃŒ
  - ํ”„๋กœ์ ํŠธ: cm-land (semicolon-devteam/cm-land)
  - ํ™˜๊ฒฝ: STG
  - ๋ฐฉ๋ฒ•: Milestone Close

[SEMO] deployer: Milestone ๋ชฉ๋ก ์กฐํšŒ
  1. v1.2.0 (์ด์Šˆ 5๊ฐœ, PR 3๊ฐœ)
  2. v1.3.0 (์ด์Šˆ 2๊ฐœ, PR 1๊ฐœ)

๋ฐฐํฌํ•  Milestone์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”: ___

[SEMO] deployer: Milestone 'v1.2.0' Close ์™„๋ฃŒ
  โ†’ STG ๋ฐฐํฌ๊ฐ€ ์ž๋™์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  โ†’ GitHub Actions: https://github.com/semicolon-devteam/cm-land/actions

์ƒํƒœ ์กฐํšŒ Workflow

STG ํ˜„์žฌ ๋ฐฐํฌ ๋ฒ„์ „ ํ™•์ธ

# ์ตœ๊ทผ close๋œ Milestone ์กฐํšŒ (= STG์— ๋ฐฐํฌ๋œ ๋ฒ„์ „)
gh api repos/{owner}/{repo}/milestones?state=closed --jq '.[0] | "v\(.title) - \(.closed_at | split("T")[0]) ๋ฐฐํฌ"'

# release- ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก ์กฐํšŒ
gh api repos/{owner}/{repo}/branches --jq '.[] | select(.name | startswith("release-")) | .name'

PRD ์ตœ์‹  ๋ฒ„์ „ ํ™•์ธ

# ์ตœ์‹  ๋ฆด๋ฆฌ์ฆˆ ํƒœ๊ทธ ์กฐํšŒ
gh api repos/{owner}/{repo}/releases/latest --jq '"v\(.tag_name) - \(.published_at | split("T")[0]) ๋ฆด๋ฆฌ์ฆˆ"'

# ๋˜๋Š” ํƒœ๊ทธ ๋ชฉ๋ก์—์„œ ์กฐํšŒ
gh api repos/{owner}/{repo}/tags --jq '.[0].name'

STG ๋ฐ˜์˜ ๋Œ€๊ธฐ ํ•ญ๋ชฉ ์กฐํšŒ

# Open ์ƒํƒœ Milestone + ์—ฐ๊ฒฐ๋œ ์ด์Šˆ/PR ์กฐํšŒ
gh api repos/{owner}/{repo}/milestones?state=open --jq '.[] | {title, open_issues, html_url}'

# ํŠน์ • Milestone์˜ ์ด์Šˆ ๋ชฉ๋ก
gh api "repos/{owner}/{repo}/issues?milestone={number}&state=all" --jq '.[] | "- #\(.number) \(.title) [\(.state)]"'

์ƒํƒœ ์กฐํšŒ ์ถœ๋ ฅ ํฌ๋งท

[SEMO] deployer: ๋ฐฐํฌ ์ƒํƒœ ์กฐํšŒ

๐Ÿ“ฆ cm-land (semicolon-devteam/cm-land)

๐ŸŸข PRD: v1.2.2 (2025-12-10 ๋ฆด๋ฆฌ์ฆˆ)
๐ŸŸก STG: release-1.2.3 (2025-12-15 ๋ฐฐํฌ)
๐Ÿ”ต DEV: dev ๋ธŒ๋žœ์น˜

๐Ÿ“‹ STG ๋ฐ˜์˜ ๋Œ€๊ธฐ:
  - release-1.3.0 (Milestone Open)
    - #45 [Feature] ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ [open]
    - #46 [Bug] ๋ฒ„๊ทธ ์ˆ˜์ • [closed]

์ฃผ์˜์‚ฌํ•ญ

  • PRD ๋ฐฐํฌ ์‹œ ๋ฐ˜๋“œ์‹œ STG ๊ฒ€์ฆ ์—ฌ๋ถ€ ํ™•์ธ
  • Milestone Close ์ „ ์—ฐ๊ฒฐ๋œ ์ด์Šˆ/PR ์ƒํƒœ ํ™•์ธ
  • ๋ฐฐํฌ ์‹คํŒจ ์‹œ GitHub Actions ๋กœ๊ทธ ํ™•์ธ ์•ˆ๋‚ด

References

  • Milestones: https://github.com/{owner}/{repo}/milestones
  • Releases: https://github.com/{owner}/{repo}/releases
  • Actions: https://github.com/{owner}/{repo}/actions