※ 現在、GitHub Actionsは現在ベータ版でこちらから申し込みできます。
GitHub Actionsの制限事項
- リポジトリごとに最大20のワークフローを同時に実行可能
- 1時間に実行できるAPIリクエストは、1つのリポジトリの全アクションで最大1000まで
- ワークフローの各ジョブは、最大で6時間まで実行可能
- 同時に実行できるジョブの数は、GitHubの契約プランによって異なる
※ 詳細は公式ドキュメントを参照
個人的な所感ですが、CircleCIよりも優秀な気がします。
事前準備
ワークフロー/ジョブの設定
-
origin master
ブランチにpushされた場合のみワークフローを実行する - Node.jsのバージョンを
10.16.0
で固定 -
yarn install / build
コマンド実行後に、Cloud SDK のCLIツールからデプロイを実行する
以下
.github/workflows/master.yml
name: CI
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.16.0]
steps:
- uses: actions/checkout@v1
- name: Run tests with ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: yarn install, build
run: |
yarn install
NODE_ENV=production yarn run build
- name: GAE deploy
run: |
echo 'github-actions@{GCPプロジェクト名}.iam.gserviceaccount.com' | gcloud auth activate-service-account --key-file {事前準備で保存したjsonキーファイル}
gcloud app deploy app.yaml --project {GCPプロジェクト名}
env:
CI: true
公式テンプレートにubuntuが入ってたのでそのまま使ってみましたが、gcloudコマンドがデフォルトで使えて感動しました