1
0

Github Actions 使ってますか?

※本記事ではGithubについての説明は割愛します。
Github Actiosとは、GithubによるCI/CDパイプライン構築のためのワークフローです。
CI/CDとはContinuous Integration/Continuous Delivery & Deploymentの略。継続的インテグレーション・継続的デリバリーのことで、要するにコードに変更を加えてマージし(インテグレーション)、本番環境に反映させる(デプロイメント)漸進的に改良を加え続け、より良い価値を届けるためのプラットフォームを築き続けるということです。

しかし、開発における継続的なコードのインテグレーション(統合)・デプロイメントは人の手で行おうとすると少なくない工数と手間がかかり、「継続性」の担保が難しい状況に陥る可能性があります。その為、リモートリポジトリへの変更のプッシュ等のイベントにフックして(フックはぶら下がるという意味の英単語です。ここにおいては作業開始の合図みたいなものだとお考えください。)ワークフローを自動実行します。
変更を引き金にしてビルド・テスト・デプロイを全て自動化して走らせ、コードの変更後に行うべき作業をGitに任せてしまおうというものですね。

Github Actions 公式ドキュメント

ひとまずやってみる

非常に簡易的ですが、「git-remote-demo」というリポジトリを作成して試してみます。
上部メニューのActionsを選択するとワークフロー一覧ページへ遷移できます。
スクリーンショット 2024-04-08 9.06.28.png

向かって左側メニューバーの「Workflows」が既に作成済みのワークフロー一覧になります。画面中央の「2 workflow runs」下に表示されているのは既に実行された後のworkflowです。青いチェックマークは問題なくフローが完了したという印ですね。
スクリーンショット 2024-04-08 9.10.50.png

ワークフロー単体の詳細画面を見てみます。
スクリーンショット 2024-04-08 9.17.46.png

今回の形式では特にブランチを指定せず、全てのブランチでpushが行われた場合にワークフローが起動する設定です。対象とするブランチを指定したり、実行スケジュールをcron式で指定しておくことで、定期実行という形でワークフローを構築することも可能です。
こちらのymlファイルは
プロジェクト直下に.githubディレクトリを作成、更にその配下にworkflowsディレクトリを作成し、そこに配置します。
.github/workflows/workflow_demo2.yml に配置します。
当該ファイル内には実行するフローを定義し、YAML形式で記述しております。

name: GithubActionsDemo-2 #ワークフロー名
on: push #トリガーするアクション

#ワークフロー時に走らせるjobと仮想環境を記述
# jobs: 実行したい処理をまとめたもの
# steps: 実行する1つ1つのコマンド
jobs: 
  my_first_job:
    name: Greeting
    runs-on: ubuntu-latest
    steps:
      - run: echo "Actionsのテスト2個目です"

では早速ローカルで1つの変更をpushしてみましょう。
スクリーンショット 2024-04-08 11.13.22.png

「GithubActions起動デモ用のプッシュです。」というコメントをつけてコミットとプッシュを実施。
スクリーンショット 2024-04-08 11.15.04.png

ワークフロー側の画面はというと、
スクリーンショット 2024-04-08 11.15.57.png
スクリーンショット 2024-04-08 11.16.50.png
workflow.ymlの定義通り、プッシュすることでワークフローを実行し、数秒で完了していますね。

⇩ワークフローの実行ログも見れます。

スクリーンショット 2024-04-05 15.14.06.png

終わり

今回はTHE・チュートリアルというような形で極単純なフローを作成・実行まで試しました。
応用すればSlackに通知を送ったり、マージ後に自動でブランチを削除したりとどんどん自動化できます。
使いこなせるようになればチームに貢献できるはずなので、身につけていきたいですね。

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