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 }}."

プッシュ

変更をコミットして、プッシュするとワークフローがトリガーされ、実行されます。

1git add .
2
3git commit -m "add Github Actions Workflow"
4
5git 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できる

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee