ども、カロージです。
GitHub ActionsでCI/CDを試したので、雑感ですがポイントを共有させて頂きます。
- GitHub Actionsって?
- GitHub Actionsのメリット
- GitHub Actionsはどうやって駆動させるの?
- 費用と、使用状況の確認
- まとめ
1.GitHub Actionsって?
GitHub Actions は、他のCI/CDツールと同様で、様々なトリガーで処理を実行させてることが出来るツールです。
GitHubのイベント(プッシュやコミットなど)をトリガーに、色々な処理を実行させることが出来ます。
この処理で、リポジトリのファイルをチェックアウトしたり、ビルドしたりデプロイなど、ソフトウェア開発ワークフローをリポジトリの中で自動化できます。
また、Dockerfileもサポートしており、コンテナも実行できます。
2.GitHub Actionsのメリット
〇当然ですが…CI/CDできるので工数削減になる
- テストの自動化が出来るので、エラーの自動チェックが出来ます。
- ビルドの自動化が出来るので、ビルド結果の判定が出来ます。
- デプロイが自動化が出来るので、ビルドしたファイルをサーバーなどに自動配置が出来ます。
〇別途サーバーを用意する必要がない
- GitHub Actions は、GitHubが提供する仮想マシン内で実行される為、別にサーバーを用意しなくても使用できます。
- また、同じ様なサービスで「Circle CI」などがありますが、GitHubのリポジトリ連携で使用したりしますが、GitHub Actions は、GitHub上で完結できちゃいます。
3.GitHub Actionsはどうやって駆動させるの?
〇ファイル形式:YAML
〇ファイル設置場所:/.github/workflows/任意のファイル名.yml (例:main.yml)
〇特記:
- /.github/workflows/ ディレクトリ以下に配置するYAMLファイルが個々のワークフローになります。
- ファイルを複数設置することで多数のワークフロー実行も可能です。
- ワークフローは並列で実行もできますし、順番に実行させることも可能です。
- 但し、ファイルが別になることで、仮想環境が別扱いになる点に注意です。
- 1つのワークフロー内でも、並列、順番指定での実行が可能です。
〇ワークフロー記述形式
- name : 任意のワークフロー名
- on: ワークフローの実行タイミング制御
- jobs: 実際のワークフロー
- 任意のジョブ名:
- steps:
- アクション
- steps:
- 任意のジョブ名:
・ワークフローサンプル(超シンプル構成です)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# ワークフロー名を「Auto Deploy」に設定 name: Auto Deploy # ワークフローの実行タイミングの制御 on: # main ブランチにプッシュイベントでワークフローをトリガー push: branches: [ main ] # ワークフロー処理 jobs: # workflow contains Build: # ubuntuの最新版環境内で実行指定 runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # node セットアップ - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} # リポジトリからのチェックアウト - name: Repos Checkout uses: actions/checkout@v2 |
4.費用と、現状の使用状況の確認
現状では費用は、以下の様になっています。
※利用時間は毎月リセットされるのですが、ストレージはリセットされない点にご注意を。
また、現状の使用状況を確認するには、
Setting > Billing & plans から確認が可能になっています。
以下の様に表示されると思います。
5.まとめ
・GitHub内で完結するのがとても良き。
・別でサーバーを使用する必要がないのも良き。
・無料枠があるのが良き。
・GitHub Actions と CircleCI で比較とかしてみたい。
参考
でわ