14
9

GitHubActionsによるRSpec・RuboCopのCI設定

Last updated at Posted at 2023-12-07

はじめに

GitHubActionsによるRSpecRuboCopCI設定を備忘録的にまとめていきます。

開発環境

  • Ruby 3.2.2
  • Ruby on Rails 7.0.8
  • MySQL
  • Docker

gemの導入

group :development, :test do
  gem 'rspec-rails'
  gem 'rubocop', require: false
end
bundle install
rails g rspec:install

CIの設定

name: Continuous Integration # ワークフローの名前を定義しています。

on:
  push: # GitHubにpushされた時にワークフローを起動します。

jobs:
  rspec:
    runs-on: ubuntu-latest # 実行環境として最新のUbuntuを選択します。
    defaults:
      run:
        working-directory: . # 作業ディレクトリを指定します。
    services:
      mysql:
        image: mysql:8.0.32 # 使用するMySQLのイメージを指定します。
        ports:
          - 3306:3306 # ポート番号を指定します。
        env:
          MYSQL_ALLOW_EMPTY_PASSWORD: yes # 環境変数を設定します。ここではパスワードなしでMySQLにアクセスできるようにしています。
          
    steps:
      - name: Checkout code # GitHubのリポジトリからコードをチェックアウトします。
        uses: actions/checkout@v2

      - name: Set up Ruby # Rubyのセットアップを行います。
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.2.2 # 使用するRubyのバージョンを指定します。
          bundler-cache: true # Bundlerのキャッシュを有効にします。

      - name: Cache node modules # Nodeモジュールをキャッシュします。
        uses: actions/cache@v3
        with:
          path: node_modules # キャッシュするディレクトリを指定します。
          key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} # キャッシュのキーを指定します。
          restore-keys: |
            ${{ runner.os }}-node-  # 部分一致する最新のキャッシュを探します。

      - name: Bundler and gem install # Bundlerとgemのインストールを行います。
        run: |
          gem install bundler
          bundle install

      - name: Database create and migrate # データベースの作成とマイグレーションを実行します。
        run: |
          cp config/database.yml.ci config/database.yml
          bundle exec rails db:create RAILS_ENV=test
          bundle exec rails db:migrate RAILS_ENV=test

      - name: Run rspec # RSpecを実行します。
        run: bundle exec rspec
        
  rubocop:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: .
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.2.2
          bundler-cache: true

      - name: Bundler and gem install
        run: |
          gem install bundler
          bundle install 

      - name: Run rubocop # Rubocopを実行します。
        run: bundle exec rubocop
14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9