Upgrade to Rails 7.2, Ruby 3.3, Alpine 3.20 #5253
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
env: | |
RUBY_VERSION: 3.3 | |
DATABASE_URL: postgres://postgres:postgres@localhost/greenlight-actions | |
RAILS_ENV: test | |
name: CI | |
on: | |
pull_request: | |
branches: "*" | |
jobs: | |
test: | |
name: Rubocop + RSpec + ESLint + License Header Check | |
runs-on: ubuntu-24.04 | |
services: | |
postgres: | |
image: postgres:13-alpine | |
env: | |
POSTGRES_DB: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
ports: | |
- 5432:5432 | |
# Health checks to wait until postgres is ready | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Alternate Image with amazonlinux | |
- name: Alternate Amazon Linux Build and Push | |
uses: docker/build-push-action@v3 | |
with: | |
file: dockerfiles/v3/amazonlinux | |
push: false | |
- name: Install Ruby ${{ env.RUBY_VERSION }} | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ env.RUBY_VERSION }} | |
- name: Install imagemagick | |
run: sudo apt-get install -y imagemagick | |
- name: Bundle cache | |
uses: actions/cache@v2 | |
with: | |
path: vendor/bundle | |
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-gems- | |
- name: Bundle install | |
run: | | |
bundle config path vendor/bundle | |
bundle install --jobs 4 --retry 3 | |
- name: NPM install | |
run: npm install | |
- name: Setup database | |
run: | | |
bundler exec rails db:create | |
bundler exec rails db:migrate | |
- name: Run Rubocop | |
run: bundle exec rubocop --parallel | |
- name: Run RSpec | |
run: bundle exec rspec | |
- name: Run ESLint | |
run: npx eslint app/javascript/* --ext .js,.jsx | |
- name: Fix License Header | |
uses: apache/skywalking-eyes/header@main |