Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub ActionsをTypeScriptで作ろう!

GitHub ActionsをTypeScriptで作ろう!

■ イベント
TSKaigi
https://2025.tskaigi.org/

■ 発表者
技術本部 Bill One Engineering Unit Core Business UMグループ
上司 陽平

■ Bill One エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

Avatar for SansanTech

SansanTech

May 23, 2025
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 2 © Sansan, Inc. ⾃⼰紹介 じょーし Sansan株式会社 @paper2parasol - インボイス管理サービス「Bill

    One」のソフトウェ アエンジニア兼SRE - 負荷試験による性能改善、IaC化と⽂化醸成、機能 開発などを担当 - 有志メンバによるCI/CD改善チームを運営し、⽇々 の開発者体験の向上に取り組む - GitHub Actionsの実⾏時間を可視化するOSS 「GitHub Actions OpenTelemetry」を個⼈開発 - 好きなものはラーメンとCloud Run
  2. カテゴリ TypeScript 他⾔語(Go, Java, Ruby…etc) 公式サポート GitHubが提供するGitHub Actions Toolkitをフルに利⽤できる 唯⼀の⾔語。⼊⼒・出⼒・ログ・エラー・シークレット・フ

    ァイルI/Oなど“全部⼊り”のAPIが揃う。 Toolkitが無いので、環境変数や GITHUB_OUTPUTファイルなどを⾃分で 扱う必要がある。GitHub Actionsの仕様を 理解して、ツールを⾃作する必要がある。 実⾏速度 パッケージ済みJSをrunnerが直接実⾏する。CIで並列マトリ クスを回しても“ほぼ即起動”。 基本Dockerコンテナを利⽤する。イメー ジ取得などに時間がかかり、コールドス タートが遅い。 プラットフォーム 追加設定なしでLinux / Windows / macOSすべて動作。 Dockerなら基本Linuxのみ。 GitHub API連携 TypeScriptの型推論・エディタ補完、VitestなどJSエコシス テムのテスト・Lintツールをそのまま利⽤可能。 HTTPリクエストを⼿書きするか、各⾔語 ⽤Octokitを利⽤する。公式SDKがない⾔ 語も多い。 開発体験 TypeScriptの型推論・エディタ補完、Jest/VitestなどJSエコ システムのテスト・Lintツールをそのまま利⽤。公式テンプ レートactions/typescript-actionで即開始可能。 テンプレートや⽀援ライブラリがほぼ無 い。セットアップやテスト戦略を⾃分で 組み⽴てる必要がある。
  3. 11 © Sansan, Inc. 公式サポート TypeScript 他⾔語(Go, Java, Ruby…etc) −

    GitHub Actions Toolkitをフルに 利⽤できる唯⼀の⾔語。 − ⼊⼒・出⼒・ログ・エラー・シ ークレット・ファイルI/Oなど “全部⼊り”のAPIが揃う。 − Toolkitが無いので、環境変数や GITHUB_OUTPUTファイルな どを⾃分で扱う必要がある。 − GitHub Actionsの仕様を理解し て、ツールを⾃作する必要があ る。
  4. 12 © Sansan, Inc. 実⾏速度 TypeScript 他⾔語(Go, Java, Ruby…etc) −

    パッケージ済みJSをrunnerが直 接実⾏する。 − CIで並列マトリクスを回しても “ほぼ即起動”。 − 基本Dockerコンテナを利用する。 − イメージ取得などに時間がかか り、コールドスタートが遅い。
  5. 13 © Sansan, Inc. プラットフォーム TypeScript 他⾔語(Go, Java, Ruby…etc) −

    追加設定なしでLinux / Windows / macOSすべて動作。 − Dockerなら基本Linuxのみ。
  6. 14 © Sansan, Inc. GitHub API連携 TypeScript 他⾔語(Go, Java, Ruby…etc)

    − GitHubが提供するOctokitを利 ⽤可能。 − 型定義付きで安全。 − OctokitはGitHub Actions Toolkit にも含まれている。 − HTTPリクエストを⼿書きする か、各⾔語⽤Octokitを利⽤する。 − 公式SDKがない⾔語も多い。
  7. 15 © Sansan, Inc. 開発体験 TypeScript 他⾔語(Go, Java, Ruby…etc) −

    TypeScriptの型推論・エディタ 補完、VitestなどJSエコシステ ムのテスト・Lintツールをその まま利⽤可能。 − 公式テンプレート actions/typescript-actionで即開 始可能。 − テンプレートや⽀援ライブラリ がほぼ無い。 − セットアップやテスト戦略を⾃ 分で組み⽴てる必要がある。