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:
jobs:
  test:
    runs-on: ubuntu-latest