Skip to content

ci: アイコンビルドを単一の workflow_dispatch に整理#2186

Open
herablog wants to merge 1 commit into
mainfrom
claude/great-albattani-qx3jl9
Open

ci: アイコンビルドを単一の workflow_dispatch に整理#2186
herablog wants to merge 1 commit into
mainfrom
claude/great-albattani-qx3jl9

Conversation

@herablog

@herablog herablog commented Jun 12, 2026

Copy link
Copy Markdown
Member

概要

アイコンビルド用のワークフローが build-icon.yml(手動トリガー)と build-icon-from-figma.yml(Figma選択トリガー)の2本に分かれており、役割が重複していて分かりづらい状態でした。これを build-icon.yml の単一 workflow_dispatch に整理・一本化するリファクタリングです。あわせて figma.json の生成処理を読みやすく書き直し、その副次効果として入力の扱いがより安全になりました。

変更内容

  • ワークフローの一本化

    • build-icon-from-figma.yml(Figmaプラグイン/選択起点のトリガー)を削除
    • アイコンビルドは build-icon.yml の手動 workflow_dispatch のみに統一
  • figma.json 生成処理のリファクタリング

    • 従来は node -p "...'$ICON_NAMES'..." のように入力をインラインの文字列へ展開して生成していたものを、独立した Node スクリプト内で JSON.parse(process.env.ICON_NAMES) として読み取る形に整理
    • 可読性が上がるとともに、入力が(シェルやJSのコードへ展開されず)データとしてのみ扱われるようになり、不正・想定外の入力に対して堅牢になりました
  • 入力(icon_names)の扱いを厳格化

    • デフォルト値 ["ALL"] を廃止(意図せず全件取得が走らないように)
    • 未入力・空文字・空白のみの場合は、専用のエラーメッセージで早期に失敗するように
    • 値のバリデーション(JSON配列か・文字列要素か・非空か)を追加
  • ["ALL"] の挙動を修正

    • 従来は文字列のまま書き込まれ全件指定が機能していなかったため、iconNames: 'ALL' へ正しく変換するよう修正(明示的に ["ALL"] を指定したときのみ全件取得)
  • 入力例の修正

    • icon_names の説明例を、実際に照合される Figma のコンポーネント名(snake_case, 例: ["align_left","album_fill"])に修正

影響・注意点

  • Figmaプラグイン経由でのトリガーは廃止されます。今後アイコンを追加・更新する際は、GitHub Actions の build icon ワークフローを workflow_dispatch(手動)で実行してください。
  • デフォルト値を廃止したため、実行時に icon_names の指定が必須になりました(全件取得したい場合は明示的に ["ALL"] を入力)。
  • Code Connect マッピング(icons.figma.tsx)の再生成は従来どおりこのワークフロー内で行うため、FIGMA_TOKEN_CODE_CONNECT は引き続き必要です。

動作確認

figma.json 生成ロジックをローカルで検証:

入力 結果
未設定 / '' / 空白のみ ❌ 必須エラーで失敗(exit 1)
[](空配列) ❌ バリデーションエラーで失敗(exit 1)
["align_left","album_fill"] ✅ そのまま配列として書き込み
["ALL"] iconNames: "ALL" に正規化

https://claude.ai/code/session_01Cx2kcSSeSd8Pju1fjCwNUT

@changeset-bot

changeset-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a665741

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

build-icon.yml と build-icon-from-figma.yml に分かれていたアイコン
ビルドを、build-icon.yml の単一 workflow_dispatch に一本化する。

- build-icon-from-figma.yml(Figma選択起点のトリガー)を削除
- figma.json 生成を node -p のインライン文字列から、独立した Node
  スクリプト内で JSON.parse(process.env.ICON_NAMES) として読み取る
  形にリファクタリング(入力をコードへ展開せずデータとして扱う)
- icon_names のバリデーション(JSON配列・文字列要素・非空)を追加
- デフォルト値 ["ALL"] を廃止し、空入力はエラーで早期に失敗させる
- ["ALL"] を iconNames: 'ALL' へ正しく変換(従来は文字列化され全件
  取得が機能していなかった)
- 入力例を Figma のコンポーネント名(snake_case)に修正
@herablog herablog force-pushed the claude/great-albattani-qx3jl9 branch from 87b27e3 to a665741 Compare June 12, 2026 10:02
@herablog herablog requested a review from yanagi0602 June 12, 2026 10:03
@herablog herablog self-assigned this Jun 12, 2026
@herablog herablog enabled auto-merge June 12, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants