CircleCI から GitHub Actions への移行
Posted on
このブログは Jekyll を使った静的サイトです。ホスティングは S3 の Static Website Hosting と CloudFront のよくある組み合わせです。
これまでブログのリリースに CircleCI を使っていましたが、使い慣れた GitHub Actions に移行したのでやったことをメモしておきます。
移行手順
次のような流れで移行しました。
.circleci/config.yml
の処理を.github/workflows/*.yml
に書き直す- feature ブランチのみワークフローが動くように
branches
を設定する - デプロイに必要な API key などをリポジトリの Secrets に登録する
- GitHub に feature ブランチを push して検証する
一発では通らないと思うので、うまくいくまで修正して push を繰り返します。ワークフローが完成したら CircleCI の設定を解除します。
- CircleCI に登録している API key などを削除する (Project Settings > Environment Variables)
- CircleCI のジョブを止める (Project Settings > Overview > Stop Building)
.circleci/config.yml
を削除する
これで CircleCI のジョブが走らなくなりました。
最後に branches
の設定を feature ブランチから default ブランチに変更すれば完了です。やっていることがシンプルだったので 1 時間ほどで移行できました。
Jekyll 用のワークフロー
参考までに、このブログで使っているワークフローを載せておきます。
name: Build and Deploy
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Build
run: bundle exec jekyll build
- name: Deploy to S3
run: ./deploy.sh ${{ secrets.S3_BUCKET_NAME }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
deploy.sh のスクリプトでは S3 へのアップロードを実行しているだけです。