😎

【インフラ_6日目】CI/CD_1冊目

2024/08/09に公開

こんにちは投資ロウトです。

背景

・CI/ CDをシステムに導入していかなければならない背景があります。

進捗状況

少しずつ進めていっていますが、現在の進捗は以下になっています。

①要件定義:1冊
②設計:1冊
③システムビジネススキル:3冊
④インフラ:1冊

CI/ CDについて

CI/ CDは「ビルド」から「テスト」、「リリース」までを自動化させる技術のこと。

今回はGit Hubを使って導入していきます。

GitHub CLIのセットアップ

# Macの場合のインストール
brew install gh
# 使っているGitHub Cliのバージョンの確認方法
gh --version

# Github CLIでログインするコマンド
gh auth login
# リポジトリの作成するコマンド
gh repo create リポジトリ名 --public --clone --add-readme

GitHub Actions

GitHub Actions・・・GitHubが提供する汎用的なワークフローエンジンとのこと。

GitHub Actionsを始めるには、ワークフローファイルを配置すると良いとのことです。ワークフローファイルとは、YAMLファイルをリポジトリへ追加するだけで実行できるもののことになります。

# ワークフローファイルの追加
mkdir -p .github/workflows
touch .github/workflows/xxx.yml
# ワークフローファイルのサンプル
name: ワークフロー名
on: どのイベントの時に起動か
jobs(ジョブ定義): 
   jobIDを入れる:
      runs-on: ubuntu-latest(ubuntuで実行)
      steps(ステップの定義):
         - run: 実行したいシェルコマンドをかく
         - uses: actions/checkout@v4(アクションの呼び出し)

その他内容について
・1つのyamlファイルで、ワークフローは一つまで記載できるとのこと。

・onイベントは、それがきっかけでトリガーするものになりますが、配列で記載することで、複数のトリガーとsルウことも可能。

・ジョブはワークフローの実行単位。

・ステップの実行は2種類あるとのこと
①シェルコマンド
※複数行のコマンドも実行可能とのこと。

②アクション
useキーでアクションを呼び出すこともできるとのこと。

上記のファイルでGitHub Actionsの実行

# 通常のgitでpushし、先ほどのonにpushトリガーを入れた際に、反応する方法について記載する
git add .
git commit -m "GitHub Actionを実施してみる"
git push

その後

実行後のワークフローの確認

# GitのGUI上ではなく、ターミナル上でワークフローの状況を確認ができる
gh run watch

# ワークフローが終了していたら、その実行結果が確認できる
gh run view

GitHub Actionsはエラーの有無を、終了ステータスで成功時は0、失敗時はゼロ以外になるために、判定できているとのことでした。

また定期実行も「on」キーに、scheduleを指定するとできるとのことでした。

ジョブ環境

GitHub Actionsは2種類に大別できるとのこと。GitHub-Hosted RunnersとSelf-Hosted Runnders

・GitHub-Hosted Runners・・・GitHubが提供する環境で、理由が他になければこちらがおすすめとのこと。またジョブの実行に時間がかかる場合は、Larger Runnersを使いましょうとのことでした。

またOSのバージョンを固定した方がワークフローの動作は安定するそうですが、定期的なバージョンアップが必要というデメリットがあるとのことです。

料金について

GitHub Actionsはパブリックリポジトリなら無料だそうですが、プライベートリポジトリだと、使用時間とストレージ使用量に応じた金額が発生してしまうとのことでした。

と短いですが、以上で学習を区切りたいと思います。ご精読ありがとうございました。焦らずコツコツ頑張っていきたいと思います。

Discussion