Open2
GitHub Actions をざっくりキャッチアップ (TBD)
- 公式ドキュメント: GitHub Actions documentation - GitHub Docs
- 学習リソース: Learn GitHub Actions - GitHub Docs
- サンプル集: Examples - GitHub Docs
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 として提供している。
- 概要
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
のところを開くと、以下のような感じ。