git hub のActionって何?
GitHub上でCI/CD(継続的インテグレーション/継続的デリバリー)を実現するための機能のことです。これを使うと、リポジトリにコードをプッシュしたり、プルリクエストを作成したりした際に、自動で特定の処理を実行できるように設定することができます。つまり、pushやプルリクするたびに、自動でテストや、デプロイを実行できるようにすることができる機能。
<git hub Actionの設定方法>
今回は、pushさせるたびにRspecとRobocopを実行させます。
RspecとRobocop関連のgemは導入済みという前提でいきます。
Git hub actionの設定は、.github/workflows/rails.ci.ymlに
書き込むことができます!!!
以下は例文です。(プロジェクトごとに書く内容は変わってきますので注意!)
name: CI
on:
push:
jobs:
test:
runs-on: ubuntu-latest
services:
db:
image: postgres
ports:
- 5432:5432
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: myapp_test
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2.3
- name: Install dependencies
run: |
gem install bundler
bundle install --jobs 4 --retry 3
- name: Set up the database
run: |
cp config/database.yml.ci config/database.yml
RAILS_ENV=test bin/rails db:create db:schema:load
- name: Run RuboCop
run: |
bundle exec rubocop
- name: Run RSpec
run: |
bundle exec rspec
このファイルにはgit actionをどのタイミングで実行するのか?、何を実行するのかを設定させることができます。
<解説>
name: CI
on:
push:
push
イベントが発生したとき(つまり、コードがリポジトリにプッシュされたとき)にこのワークフロー(git hub action)が実行されることを示しています。jobs:
test:
runs-on: ubuntu-latest