pasosdeJesus/msip

View on GitHub
.github/workflows/rubyonrails.yml

Summary

Maintainability
Test Coverage
# Este flujo de trabajo emplea acciones que no están certificadas por Github.
# Son proveidas por un tercero y están gobernadas por diferentes
# términos de servicio, política de privacidad y documentación.
#
# Este flujo de trabajo instalará una versión preconstruida de Ruby,
# instalará dependencias y ejecutará pruebas y verificadores.
name: "IC para Ruby on Rails"
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
env:
  DB_HOST: localhost
jobs:
  test:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:14-alpine
        ports:
          - "5432:5432"
        env:
          POSTGRES_DB: rails_test
          POSTGRES_USER: rails
          POSTGRES_PASSWORD: password
          BD_CLAVE: password
          BD_USUARIO: rails
          BD_PRUEBA: rails_test
    env:
      RAILS_ENV: test
      DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test"
    steps:
      - name: Sacar código fuente
        uses: actions/checkout@v3
      # Agregue o remplace pasos de depencicas aquí
      - name: Instalar Ruby y gemas
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.1.2'
          bundler-cache: true
      - name: Instalar paquetes adicionales
        run: sudo apt install poppler-utils # Incluye pdftoppm
      - name: Configurar esquema de base de datos
        run: (cd test/dummy; cp .env.github .env; RAILS_ENV=test bin/rails db:drop db:create db:setup db:seed msip:indices; bin/rails msip:stimulus_motores; bin/rails assets:precompile)
      # Agregue o remplace ejecutores de pruebas aquí
      - name: Ejecutar pruebas
        run: CONFIG_HOSTS=www.example.com bin/rails test

  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Sacar código fuente
        uses: actions/checkout@v3
      - name: Instalar Ruby y gemas
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.2.0-preview1'
          bundler-cache: true
      # Agregue o remplace verificadores 
      - name: Verificación de seguridad a dependencias ruby
        run: (bin/bundler-audit --update || exit_code=$?; echo "exit_code=$exit_code")
      - name: Verificación de seguridad a código Ruby de la aplicación
        run: (bin/brakeman -q -w2 || exit_code=$?; echo "exit_code=$exit_code")
      - name: Verificación al formato de código Ruby
        run: (bin/rubocop --parallel || exit_code=$?; echo "exit_code=$exit_code")