Skip to content

refactor(plugin-ci): plugin validate-* workflows를 reusable plugin-ci.yml로 통합 #13

@k2kite-megankim

Description

@k2kite-megankim

배경

플러그인 sweep PR 들 (lvis-plugin-meeting #75, local-indexer #100, ms-graph #54, lge-api #43, work-proactive #55, agent-hub #93, lvis-plugin-template #39 — check:ui-tokens) 의 self-review 에서 architect 가 구조적 중복을 지적.

현재 각 플러그인 repo 에 standalone validate-*.yml 워크플로 4 종류 존재:

  • validate-hostapi.yml
  • validate-events.yml
  • validate-manifest.yml
  • validate-ui-tokens.yml (이번 sweep 추가)

각 워크플로가 동일 패턴 — actions/checkout + setup-bun/setup-node + 단일 bun run … / node …. 7 repo × 4 워크플로 = 28 개의 거의 동일한 YAML.

문제

  • 변경 시 28 곳 동기 (예: action SHA-pin, runner 변경)
  • 각 워크플로가 floating tag 사용 (oven-sh/setup-bun@v2) vs 본 reusable workflow 의 pinned-SHA 정책 충돌
  • bun version 도 1.1.38 하드코딩 vs plugin-ci.yml1.3.9 input default → 같은 repo 안에서 두 bun 버전 존재
  • Self-hosted runner 게이트 (head.repo.full_name == github.repository) 도 4 곳에 복붙

권장

lvis-project/.github/.github/workflows/plugin-ci.yml 의 lint/typecheck/test conditional 패턴 (line 49-60) 을 mirror 해서:

- name: validate:hostapi (if script exists)
  if: hashFiles('scripts/validate-hostapi.mjs') != ''
  run: bun run validate:hostapi || node scripts/validate-hostapi.mjs

- name: validate:events (if script exists)
  

- name: check:ui-tokens (if script exists)
  

각 플러그인 repo 의 7 개 standalone yml 제거, ci.yml 만 남기면 자동 활성화.

영향

  • 7 repo × 4 yml = 28 파일 제거
  • plugin-ci.yml 에 conditional step 4 개 추가
  • bun/action 버전 통일

의존성

  • 본 sweep PR 들 (#75/#100/#54/#43/#55/#93) 머지 후 진행 — 그 전에 하면 PR 충돌 발생

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions