Github Actions超入門
2021.07.27
2024.03.24
CI/CD
Github Actions
はじめに
Github Actionsについて、簡単なワークフローを作成して実際に試してみたいと思います。
Github Actionsとは
Github Actionsとは、Githubが提供するCI/CDツールです。
Githubのリポジトリに作成する形で管理され、Githubでのイベントなどをトリガーにワークフローが実行されます。
基本的な概念
Github Actionsで出てくる基本的な概念についてまとめます。
ワークフロー
- 自動化する一連の手順
- 1つ以上のジョブから構成される
- スケジュールまたはイベントによりトリガーできる
- 複数のワークフローを作成できる
イベント
- ワークフローをトリガーするアクティビティ
- Githubでのコミットやプッシュなど
- webhookを使用した外部イベント
ジョブ
- 一連のステップの集まり
- 同じランナーで実行される
- 複数のジョブを並行/順番に実行できる
ステップ
- アクションまたはコマンドの集まり
- コマンドを実行できる個々のタスク
- 同じジョブのステップでデータを共有
アクション
- ワークフローの最小構成要素となるコマンド
- 公開されているものを使うことができる
- 独自で作ることも可能
ランナー
- Github Actionsが動くサーバー
- Ubuntu/Windows/macOSが選べる
- 自分のランナーをホストすることも可能
とりあえず動かす
とりあえず動かしてみます。
まずはGithub Actionsを試すためのリポジトリを作成します。
ワークフローの作成
作成したリポジトリにワークフローファイルを保存するための.github/workflows
ディレクトリを作成します。
.github/workflow
ディレクトリに下記の内容でsample.yml
ファイルを作成します。
1name: GitHub Actions Demo
2on: [push]
3jobs:
4 Explore-GitHub-Actions:
5 runs-on: ubuntu-latest
6 steps:
7 - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
8 - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
9 - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
10 - name: Check out repository code
11 uses: actions/checkout@v2
12 - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
13 - run: echo "🖥️ The workflow is now ready to test your code on the runner."
14 - name: List files in the repository
15 run: |
16 ls ${{ github.workspace }}
17 - run: echo "🍏 This job's status is ${{ job.status }}."
プッシュ
変更をコミットして、プッシュするとワークフローがトリガーされ、実行されます。
1❯ git add .
2
3❯ git commit -m "add Github Actions Workflow"
4
5❯ git push
結果の確認
対象のリポジトリの「Actions」から確認すると、先ほどのプッシュで実行されたワークフローが確認できます。
ワークフローをクリックすると、実行したジョブの結果が確認できます。
さらにジョブを選択すると、ステップの結果が確認できます。コマンドとアクションの実行も確認できます。
基本的な構文
基本的な構文を抜粋して紹介します。
name
ワークフローの名前。
1name: workflow-name
on
ワークフローをトリガーするイベントの名前。
1on: [push, pull_request]
jobs
ジョブを定義。
1jobs:
2 my_first_job:
3 name: My first job
4 my_second_job:
5 name: My second job
runs-on
ランナーの指定。
1runs-on: ubuntu-latest
steps
ステップの定義。
1steps:
2 # 特定のコミットを参照
3 - uses: actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e
4 # リリースのメジャーバージョンを参照
5 - uses: actions/setup-node@v1
6 # リリースのマイナーバージョンを参照
7 - uses: actions/setup-[email protected]
8 # ブランチを参照
9 - uses: actions/setup-node@main
uses
アクションを実行。
1- name: My first step
2 uses: docker://alpine:3.8
run
コマンドを実行。
1- name: Install Dependencies
2 run: npm install
まとめ
- GithubのリポジトリでCI/CDできる
参考
- GitHub Actionsのドキュメント - GitHub Docs
- GitHub Actions 入門 - GitHub Docs
- GitHub Actionsのワークフロー構文 - GitHub Docs
Share
関連記事
【Tekton】PipelineでTaskを実行する条件をつける
2022.04.13
【KubernetesでCI/CD】Tekton動かしてみる
2021.11.13
【KubernetesでCI/CD】Tektonのパラメーターを理解する
2021.11.21