GitHub Actions

ここでは,GitHub Actions についてメモします.

最小構成

Hello, GitHub workflow

リポジトリ下に .github/workflows ディレクトリを作成し,YML ファイルを設置すると,GitHub workflow が実行される.下記の例では,test_github_workflow リポジトリ下の .github/workflows ディレクトリに main.yml を設置している.実行結果はブラウザから GitHub のリポジトリにアクセスし,"▶ Actions" の項目から閲覧できる.

  • .github/workflows/main.yml
    name: main_test_GitHubWorkflow on: push: jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: hello_GHWF run: | echo "Hello, GitHub workflow !!" pwd ls
  • 実行結果
    Run echo "Hello, GitHub workflow !!" Hello, GitHub workflow !! /home/runner/work/test_github_workflow/test_github_workflow README.md

いろいろインストールして,サイトを生成する

毎回インストールしてサイトを生成するほうが,管理する物が少なくて楽.
難しいことは実行時間が不足してから考えればよい.

GitHub Container Registry を活用して実行時間を削減する

Dockerfile のビルドと Docker image の push を手動で行う場合

間を取るとこのくらいになるはず.

すべて自動で行う場合

  • 特定のファイル (Dockerfile) の更新に合わせて,Dockerfile をビルドする.
  • ビルドされた Dockerfile を GitHub Container Registry に push する
  • push されたコンテナを pull する.
  • pull した docker image を元にサイト生成を実行するように修正する.

このあたりまでできるといい感じだけれど,管理する物が増えると,面倒なのでやめたほうが良いと思う.

下調べ

Docker コンテナアクション
action.yaml の runs.using に 'docker' を指定し、runs.imageに次のいずれかを指定する

  • Dockerfile
  • Dockerhubなどパブリックなレジストリで公開されている Docker イメージ
  • Github謹製のDockerコンテナ (GitHub Actionsで公開されているやつかな)

1

GitHub Actions + 自動テスト

いきなり Docker との連携を考えると,詰みそうなので,ひとまずなにがしかを動かすことを考える.
→ まずは自動テストを考える.

GitHub Actions + Docker

References

Footnotes

  1. Github Action の作り方メモ - HeRo @ Qiita external_link - 2021.04.25 閲覧.