Open2

GitHub Actions をざっくりキャッチアップ (TBD)

zuribozuribo

Understanding GitHub Actions - GitHub Docs

  • Overview
    • GitHub Actions は CI/CD プラットフォームで、ビルド、テスト、デプロイパイプラインを自動化できる。
    • workflow を作ることで、リポジトリに対する PR ごとにビルドとテストを実行したり、マージされた PR を production にデプロイすることもできる。
    • GitHub Actions は、ただの DevOps 以上のものであり、さまざまなイベントが発生した場合の workflow を定義することができる。
  • The components of GitHub Actions
    • 概要
      • event (PR のオープンや issue の作成など) が発生した場合にトリガーする workflow を定義することができる。
      • workflow はl、1 つ以上の job から構成され、直列または並列に実行できる。
      • 各 job は、runner と呼ばれる仮想マシンまたは container で実行され、1 つ以上のステップで定義される。
      • 各 step は、ユーザーが定義したコマンドまたは action を実行する。
    • Workflows
      • 1つ以上の job で構成される設定可能な自動化されたプロセスのこと。
      • YAML ファイルで定義され、リポジトリ上のイベントによって自動的にトリガーされる。
      • .github/workflows 配下に配置され、複数の workflow を定義することが可能である。
    • Events
      • リポジトリ上で発生する特定のアクティビティであり、workflow をトリガーするソースとなる。
    • Jobs
      • 1つ以上の step で構成され、同一の runner 上で実行される。
      • 各 step は、シェルスクリプトまたは action である。
    • Actions
      • 複雑だが頻繁に繰り返されるタスクを実行するためのカスタムアプリケーションのこと。
      • action を使用することで、複数の workflow ファイルで繰り返し利用されるコードを減らすことができる。
    • Runners
      • workflow を実行するサーバーのこと。
      • GitHub は、Ubuntu Linux, Microsoft Windows, maxOS を、runner として提供している。
zuribozuribo

Hello GitHub Actions!

Create an example workflow - Understanding GitHub Actions - GitHub Docs にしたがって、サンプル workflow を作ってみる。

GitHub 上でリポジトリ作成してクローンする。

$ git clone git@github.com:<username>/github-actions-sample.git

ディレクトリも移動しておく。

$ cd github-actions-sample

workflow を格納する .github/workflows/ ディレクトリを作成する。

$ mkdir -p .github/workflows/

以下の内容の .github/workflows/hello_github_actions.yaml を作成する。

name: hello-github-actions
on: [push]
jobs:
  hello-github-actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Hello GitHub Actions!"

内容としては、push 時に ubuntu 上で echo "Hello GitHub Actions!" を実行するだけ。

ステージングして、コミットして、プッシュする。

$ git add .
$ git commit -m "Add hello world workflow"
$ git push

GitHub 上の「Actions」を開いてみると、コミット名がついたエントリがある。

クリックして開くと、以下のような感じ。

hello-github-actions のところを開くと、以下のような感じ。