自作のライブラリのCIをCircleCIからGitHub Actionsへ移行したメモ
特にメリットがあるから乗り換えたとかいうわけでもないけど、GitHubだけで完結するならそれに越したことはない
ファイルの場所
.github/workflows/<ワークフローの名前>.yml
だが、いまのところ複数作るユースケースが見えないので main.yml
とした。
実行環境
ubuntu-latest
を選択した。特に理由はないけど一応MacOSやWindowsも選べるっぽい?
Software in virtual environments for GitHub Actions - GitHub Help を見るとわかるが、 めちゃくちゃ充実したプリインのソフトウェアがある。
yarn
や Git、Docker、Chromeもなんの設定もなく最初から使えるのはよい。
今回の移行ではもともと circleci/node:carbon-browsers
を使っていたけど、 ubuntu-latest
だけで事足りた。
Node.jsのバージョン指定は node-version: [12.x]
のところでマトリックスにできるので、実行環境とは切り離して考えられる。
全体
name: Main on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [12.x] steps: - uses: actions/checkout@v1 - name: Run tests with ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: npm install, build, and test run: | yarn install yarn build yarn lint yarn test:ci env: CI: true
もともと大したことをやってないので、あっというまに置き換えが終わった。
ポイント
yarn
は最初から入ってるから気にしなくていい (現在は1.17.3っぽいが多分latest追従だろうか)- Chromeも最初から入ってるから気にしなくていい (Headlessはまだ試してない)
- Node.jsのバージョン指定は
actions/setup-node
の引数で変えられる