Skip to content

Commit

Permalink
Merge pull request #2 from andrecego/ci/add-lint-and-test-workflows
Browse files Browse the repository at this point in the history
Ci/add lint and test workflows
  • Loading branch information
andrecego authored Feb 8, 2024
2 parents 0701e1d + 83ccffd commit 21d1707
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 2 deletions.
60 changes: 60 additions & 0 deletions .github/workflows/rails.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: "Ruby on Rails CI"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
runs-on: ubuntu-latest
services:
mysql2:
image: mysql:5.7
ports:
- "3306:3306"
env:
MYSQL_DATABASE: rails_test
MYSQL_USER: rails
MYSQL_PASSWORD: password
MYSQL_TCP_PORT: 3306
MYSQL_RANDOM_ROOT_PASSWORD: true
MYSQL_ONETIME_PASSWORD: true
# Before continuing, verify the mysql container is reachable from the ubuntu host
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

env:
RAILS_ENV: test
NODE_ENV: test
DATABASE_URL: "mysql2://rails:password@127.0.0.1:3306/rails_test" # localhost doesn't work because the application can't connect to the linux host socket
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Ruby and gems
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
with:
bundler-cache: true
- name: Set up database schema
run: bundle exec rails db:create db:migrate
- name: Install Node.js and packages
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Install Yarn and packages
run: npm install -g yarn@1.22.19 && yarn install
- name: Run webpacker
run: NODE_OPTIONS="--openssl-legacy-provider" bundle exec rails webpacker:compile # NODE_OPTIONS needs to be set inline to avoid a webpacker error with node 18
- name: Run rspec
run: bundle exec rspec

lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Ruby and gems
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
with:
bundler-cache: true
# Add or replace any other lints here
- name: Run rubocop
run: bundle exec rubocop
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ gem 'bootsnap', '>= 1.4.4', require: false
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: %i[mri mingw x64_mingw]
gem 'rspec-rails', '~> 6.0.0', groups: %i[development test]
gem 'factory_bot_rails', '~> 6.0.0',
gem 'factory_bot_rails', '~> 6.0.0', require: false
gem 'rspec-rails', '~> 6.0.0'
gem 'rubocop', '~> 1.48', require: false
gem 'rubocop-performance', '~> 1.16', require: false
gem 'rubocop-rails', '~> 2.18', require: false
Expand Down
15 changes: 15 additions & 0 deletions db/schema.rb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 21d1707

Please sign in to comment.