1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1. まずCIで何を担保したいかを決める

最初に考えるべきなのは、「何を自動化したいのか」です。

例えば、

  • ビルドが通ること
  • テストが通ること
  • Lintエラーがないこと
  • フォーマットが崩れていないこと

目的が曖昧なまま作ると、不要なジョブが増えてメンテナンスしづらくなります。

2. 実行タイミングを決める

CIはどのタイミングで実行するかも重要です。

例えば、

  • pull_request
  • push
  • workflow_dispatch

すべてで実行すると無駄な実行が増えることもあります。

3. ジョブは役割ごとに分ける

例えば、

  • Lint
  • Test
  • Build

を分けておくと、「何が失敗したのか」がすぐ分かります。

4. 実行時間を短くする

CIは毎回実行されるので、

  • キャッシュを使う
  • 不要な処理を省く
  • 並列実行する

などを意識すると開発体験が良くなります。

5. Secretsをコードに書かない

APIキーやトークンは必ずSecretsで管理します。
CIは多くの人が触るので、セキュリティも重要です。

6. ローカルでも再現できるようにする

CIだけ成功してローカルでは失敗する状態は避けたいところです。

CIで実行しているコマンドは、

  • npm run lint
  • npm test
  • npm run build

のようにローカルでもそのまま実行できる構成がおすすめです。

7. 最初から作り込みすぎない

CIは運用しながら育てるものです。
最初から複雑なワークフローを作るより、

  • Lint
  • Test
  • Build

くらいから始めて、必要になったら追加していく方が保守しやすくなります。

まとめ

CIは「GitHub Actionsを書くこと」が目的ではなく、

  • 品質を保つ
  • 開発効率を上げる
  • レビューしやすくする

ための仕組みです。

ツールよりも、「何を自動化したいのか」「開発チームにとって使いやすいか」を意識して設計することが大切です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?