Skip to content

Commit

Permalink
[WIP] Rails 6.0.2 & Ruby 3.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
kigster committed Mar 11, 2024
1 parent 70b2839 commit c593bd0
Show file tree
Hide file tree
Showing 163 changed files with 10,098 additions and 1,421 deletions.
13 changes: 13 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# vim: ft=bash

PATH_add bin
PATH_add /opt/homebrew/bin

export brew_prefix="$(brew --prefix)"
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

export V8HOME=$(brew --prefix [email protected])

export CFLAGS="-Wno-error=implicit-function-declaration -Wno-error=no-compound-token-split-by-macro"
export CPPFLAGS="$CPPFLAGS -I ${brew_prefix}/include -I ${V8HOME}/include"
export LDFLAGS="$LDFLAGS -L ${brew_prefix}/lib -L ${V8HOME}/lib"

export RUBY_CPPFLAGS="$CPPFLAGS"
export RUBY_CFLAGS="$CFLAGS"

[[ -f .envrc.local ]] && source .envrc.local
84 changes: 84 additions & 0 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# .github/workflows/main.yaml
name: "TicketBooth CI: rspec"

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
main:
name: CI
runs-on: ubuntu-latest

# If you need DB like MySQL then define service below.
# Example for PostgreSQL and Redis can be found here:
# https://github.com/actions/example-services/tree/master/.github/workflows
services:
postgresql:
image: postgres
env:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: ""
POSTGRES_HOST_AUTH_METHOD: "trust"
ports:
- 5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis
ports:
- 6379/tcp
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: niden/actions-memcached@v7

- run: sudo apt-get update -yqq
- run: sudo apt-get install -yqq netcat libpq-dev

- name: "Verify Memcached is running"
run: echo -e "stats\nquit" | nc localhost 11211 | grep -e "accepting_conns 1" -q

- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.3'
bundler-cache: true

- name: "Create and migrate the DB"
run: |
bin/rails db:create
bin/rails db:migrate
bin/rails db:test:prepare
- name: "Run Rspec"
run: bundle exec rspec --format documentation

- name: "Run Rubocop"
run: bundle exec rubocop


lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.3'
bundler-cache: true

- name: RuboCop
run: bin/rubocop --parallel
25 changes: 0 additions & 25 deletions .github/workflows/rubocop.yml

This file was deleted.

67 changes: 41 additions & 26 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,59 @@

name: RSpec
name: "TicketBooth CI: Ruby"
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
# Label of the container job
container-job:
# Containers must run in Linux based operating systems
runs-on: ubuntu-latest
# Docker Hub image that `container-job` executes in
container: ruby:3.2

# Service containers to run with `container-job`
services:
postgres:
image: postgres:13
ports:
- 5432:5432
# Docker Hub image
image: postgres:16
# Provide the password for postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: ""
POSTGRES_HOST_AUTH_METHOD: "trust"

# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
# Docker Hub image
image: redis
ports:
- 6379:6379
options: --entrypoint redis-server
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10sa
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
- uses: niden/actions-memcached@v7
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: 2.5.8 # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically

- run: |
gem update --system 3.2.3 || true
gem install bundler --version 1.17.3 -N
bundle _1.17.3_ install -j 12
ruby-version: '3.2.3' # Not needed with a .ruby-version file
bundler-cache: true

- run: bundle install -j 12
- run: |
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:test:prepare
bin/rails db:create
bin/rails db:migrate
bin/rails db:test:prepare
- run: bundle exec rspec --format documentation
- run: bundle exec rubocop

- run: |
bundle exec rspec
52 changes: 31 additions & 21 deletions .github/workflows/rubyonrails.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
# This workflow will install a prebuilt Ruby version, install dependencies, and
# run tests and linters.
name: "Ruby on Rails CI"
name: "TicketBooth CI: Ruby on Rails"
on:
push:
branches: [ "main" ]
Expand All @@ -15,44 +15,54 @@ jobs:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15-alpine
image: postgres
ports:
- "5432:5432"
env:
POSTGRES_DB: tickets_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: ""
POSTGRES_HOST_AUTH_METHOD: "trust"

redis:
# Docker Hub image
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
RAILS_ENV: test
DATABASE_URL: "postgres://postgres:password@localhost:5432/tickets_test"
steps:
- run: sudo apt-get -yqq install libpq-dev
- uses: niden/actions-memcached@v7

- name: Checkout code
uses: actions/checkout@v3
# Add or replace dependency steps here
- name: Install Ruby and gems
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.3'
bundler-cache: true
# Add or replace database setup steps here

- name: Set up database schema
run: bin/rails db:schema:load
# Add or replace test runners here

- name: Run tests
run: bin/rake
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
uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.3'
bundler-cache: true
# Add or replace any other lints here
- name: Security audit dependencies
run: bin/bundler-audit --update
- name: Security audit application code
run: bin/brakeman -q -w2
- name: Lint Ruby files

- name: RuboCop
run: bin/rubocop --parallel
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
**/.DS_Store
.idea
.vscode
/log
/log/*.log
/tmp

# Ignore file uploads in development
Expand Down
1 change: 1 addition & 0 deletions .rspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
--order rand
--profile 5
--require spec_helper
-b
Loading

0 comments on commit c593bd0

Please sign in to comment.