Skip to content

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

Description

@k2kite-megankim

배경

플러그인 sweep PR 들 (lvis-plugin-meeting #75, local-indexer #100, ms-graph #54, portal #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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions