Skip to content

Feature/group controller #47

Feature/group controller

Feature/group controller #47

Workflow file for this run

name: Backend_CI
on:
pull_request:
push:
jobs:
scan_ruby:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
working-directory: ./todo_backend
ruby-version: 3.3.4
bundler-cache: true
- name: Change permissions
working-directory: ./todo_backend
run: chmod +x bin/brakeman
- name: Scan for common Rails security vulnerabilities using static analysis
working-directory: ./todo_backend
run: bin/brakeman --no-pager --no-exit-on-warn --no-exit-on-error
# scan_js:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Set up Ruby
# uses: ruby/setup-ruby@v1
# with:
# working-directory: ./todo_backend
# ruby-version: 3.3.4
# bundler-cache: true
# - name: Scan for security vulnerabilities in JavaScript dependencies
# working-directory: ./todo_backend
# run: bin/importmap audit
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
working-directory: ./todo_backend
ruby-version: 3.3.4
bundler-cache: true
- name: Change permissions
working-directory: ./todo_backend
run: chmod +x bin/rubocop
- name: Lint code for consistent style
working-directory: ./todo_backend
run: bin/rubocop
test:
runs-on: ubuntu-latest
services:
db:
image: mysql
env:
MYSQL_ROOT_PASSWORD: rootpasswd
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=5s --health-retries=1
# redis:
# image: redis
# ports:
# - 6379:6379
# options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
# - name: Install packages
# run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl default-mysql-client libjemalloc2 libvips
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
working-directory: ./todo_backend
ruby-version: 3.3.4
bundler-cache: true
- name: Change permissions
working-directory: ./todo_backend
run: |
chmod +x bin/rails
chmod +x bin/bundle
- name: Create database
working-directory: ./todo_backend
env:
RAILS_ENV: test
DATABASE_ADDR: '127.0.0.1'
run: bin/rails db:create
- name: Run tests
working-directory: ./todo_backend
env:
RAILS_ENV: test
DATABASE_ADDR: '127.0.0.1'
# REDIS_URL: redis://localhost:6379/0
run: bin/bundle exec rspec
# - name: Keep screenshots from failed system tests
# uses: actions/upload-artifact@v4
# if: failure()
# with:
# name: screenshots
# path: ${{ github.workspace }}/tmp/screenshots
# if-no-files-found: ignore