81 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CI
 | 
						|
 | 
						|
on:
 | 
						|
  pull_request:
 | 
						|
  push:
 | 
						|
    branches: [ main ]
 | 
						|
 | 
						|
jobs:
 | 
						|
  scan_ruby:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Checkout code
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Set up Ruby
 | 
						|
        uses: ruby/setup-ruby@v1
 | 
						|
        with:
 | 
						|
          ruby-version: .ruby-version
 | 
						|
          bundler-cache: true
 | 
						|
 | 
						|
      - name: Scan for common Rails security vulnerabilities using static analysis
 | 
						|
        run: bin/brakeman --no-pager
 | 
						|
 | 
						|
  scan_js:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Checkout code
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Set up Ruby
 | 
						|
        uses: ruby/setup-ruby@v1
 | 
						|
        with:
 | 
						|
          ruby-version: .ruby-version
 | 
						|
          bundler-cache: true
 | 
						|
 | 
						|
      - name: Scan for security vulnerabilities in JavaScript dependencies
 | 
						|
        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:
 | 
						|
          ruby-version: .ruby-version
 | 
						|
          bundler-cache: true
 | 
						|
 | 
						|
      - name: Lint code for consistent style
 | 
						|
        run: bin/rubocop -f github
 | 
						|
 | 
						|
  test:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
 | 
						|
      - name: Install packages
 | 
						|
        run: sudo apt-get update && sudo apt-get install --no-install-recommends -y build-essential git libyaml-dev pkg-config
 | 
						|
 | 
						|
      - name: Checkout code
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Set up Ruby
 | 
						|
        uses: ruby/setup-ruby@v1
 | 
						|
        with:
 | 
						|
          ruby-version: .ruby-version
 | 
						|
          bundler-cache: true
 | 
						|
 | 
						|
      - name: Setup test database
 | 
						|
        env:
 | 
						|
          RAILS_ENV: test
 | 
						|
        run: bin/rails db:test:prepare
 | 
						|
 | 
						|
      - name: Run rspec
 | 
						|
        env:
 | 
						|
          RAILS_ENV: test
 | 
						|
        run: bundle exec rspec
 |