GitHub Actions のハンズオン用リポジトリ
このリポジトリには、Node.js で書かれた Web アプリと、その Web アプリを Docker イメージにするための Dockerfile が存在します。
GitHub Actions で、次の内容の CI を設定してみましょう。
- コードスタイルチェックと単体テスト実行
npm run lint
でコードスタイルチェックnpm test
で単体テスト
- 上記が通ったら、Docker イメージをビルド
docker build .
でビルド可能
まず、各自でこのリポジトリを Fork してから、手元に clone し、適当な名前のブランチを作成してください。
$ git clone https://github.com/(your account)/github-actions-hands-on.git
$ git checkout -b setup-ci
次に、GitHub Actions で CI を設定します。GitHub Actions は YAML で CI を定義します。リポジトリ上に、.github/workflows/ci.yml
というファイルを、以下の内容で作成してください。
name: Node.js Web App CI
on: push
jobs:
lint_and_test:
name: Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
- run: npm ci
- run: npm run lint
build:
name: Docker Build
needs: [lint_and_test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: docker build .
設定内容を簡単に説明すると、それぞれ以下のような意味があります。
on: push
: リポジトリにコミットが push されるたびにこのワークフローを実行するruns-on: ubuntu-latest
: GitHub Actions が提供する Ubuntu の最新環境上でビルドを行うuses: actions/checkout@v2
: リポジトリをビルド環境上にチェックアウトするuses: actions/setup-node@v2
: ビルド環境の Node.js をnode-version
で指定したバージョンでセットアップするrun
: 指定したコマンドを実行needs: [lint_and_test]
:lint_and_test
ジョブが成功したら実行
作成できたら、変更内容をコミットしてリポジトリに push しましょう。
$ git add .github/workflows/ci.yml
$ git commit -m "setup CI"
$ git push -u origin setup-ci
ブラウザで、リポジトリの Actions タブを開いて、ワークフローが正しく動いているか確認しましょう。
- Docker コンテナ内ビルド
- 結合テストやデプロイ
- 環境変数
- キャッシュ
- 成果物
- 通知
- バッジ
- その他いろいろ
より詳しく知りたい人は、公式ドキュメントを参考に、自分の開発しているソフトウェアに CI/CD を設定してみましょう!