Skip to content

Commit

Permalink
Probando en github y gitlab
Browse files Browse the repository at this point in the history
  • Loading branch information
vtamara committed Mar 23, 2023
1 parent 3e3f7c5 commit c25214d
Show file tree
Hide file tree
Showing 8 changed files with 165 additions and 106 deletions.
28 changes: 28 additions & 0 deletions .env.github
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh
# Variables de configuración de la aplicación
# Damos precedencia a las especificadas en línea de ordenes

export DIRAP="/home/runner/work/si_fasol/si_fasol/"

. ./.env.plantilla

echo "MSIP_RUTA_VOLCADOS=${MSIP_RUTA_VOLCADOS}"
echo "BD_NOMBRE=${BD_NOMBRE}"

export MSIP_RUTA_VOLCADOS="${DIRAP}/archivos/bd/"
export MSIP_RUTA_ANEXOS="${DIRAP}/archivos/anexos/"
echo "MSIP_RUTA_VOLCADOS=${MSIP_RUTA_VOLCADOS}"

export BD_USUARIO=rails
export BD_CLAVE="password"
export BD_PRUEBA="rails_test"
export BD_SERVIDOR=localhost

export RUTA_RELATIVA="/fasol/si/"

# Despliegue
export CONFIG_HOSTS=www.example.com/

export CI="Si"

export NOPRUEBAJS=""
19 changes: 16 additions & 3 deletions .env.gitlab
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,28 @@
# Variables de configuración de la aplicación
# Damos precedencia a las especificadas en línea de ordenes

export DIRAP="/build/pasosdeJesus/si_fasol/"

. ./.env.plantilla

echo "MSIP_RUTA_VOLCADOS=${MSIP_RUTA_VOLCADOS}"
echo "BD_NOMBRE=${BD_NOMBRE}"

export MSIP_RUTA_VOLCADOS="${DIRAP}/archivos/bd/"
export MSIP_RUTA_ANEXOS="${DIRAP}/archivos/anexos/"
echo "MSIP_RUTA_VOLCADOS=${MSIP_RUTA_VOLCADOS}"

# Base de datos. Muy util: https://hub.docker.com/_/postgres
export BD_USUARIO=runner
export BD_CLAVE=""
export BD_PRUEBA="sivel2gen_pru"
export BD_PRUEBA="sifasol_pru"
export BD_SERVIDOR=postgres

export RUTA_RELATIVA="/fasol/si/"

# Despliegue
export CONFIG_HOSTS=www.example.com
export DIRAP="/build/pasosdeJesus/sivel2/"
export CONFIG_HOSTS=www.example.com/

export CI="Si"

export NOPRUEBAJS=""
64 changes: 34 additions & 30 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
# Para la mayoriá de proyectos, este archivo de flujo no necesita ser cambiado;
# simplemente agreguelo a su repositorio.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
# Puede querer modificar este archivo para sobrecargar el conjunto de lenguajes
# analizados o para poner consultas personalizadas o lógica de construcción.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
# ******** NOTA ********
# Hemos intentando detectar los lenguajes en su respositorio. por favor revise
# la matriz `language` definida más abajo para confirmar que tiene el conjunto
# correcto de lenguajes soportados por CodeQL.
#
name: "CodeQL"

on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
# Las ramas siguientes deben ser subconjunto de las ramas de arriba
branches: [ main ]
schedule:
- cron: '28 5 * * 2'

jobs:
analyze:
name: Analyze
name: Analizar
runs-on: ubuntu-latest
permissions:
actions: read
Expand All @@ -33,38 +33,42 @@ jobs:
fail-fast: false
matrix:
language: [ 'javascript', 'ruby' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
# CodeQL soporta [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Aprenda más del soporte de lenguajes de CodeQL en https://git.io/codeql-language-support

steps:
- name: Checkout repository
- name: Sacar repositorio
uses: actions/checkout@v2

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
# Inicializa herramientas de CodeQL para el sondeo
- name: Inicializar CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Si quiere especificar consultas personalizadas, puede hacerlo aquí o
# en un archivo de configuración.
# Por omisión, las consultas listadas aquí sobrecargaran las
# especificadas en un archivo de configuración.
# Agregue como prefijo a la lista de aquí un "+" para usar estas
# consultas y las del archivo de configuración.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Intentos de autoconstrucción para construir lenguajes compilados (C/C++, C#, o Java).
# Si este paso falla, entonces puede eliminarlo y ejecutar la construcción
# manualmente (ver más abajo)
- name: Autoconstrucción
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# Programas de la línea de ordenes para ejecutar el interprete del SO.
# https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# Si la autoconstrucción anterior falla, eliminela y quite comentarios de
# las siguientes 3 líneas y modifiquelas (o añada) para construir su
# código si su proyecot usa un lenguaje compilado.

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
- name: Realizar análisis de CodeQL
uses: github/codeql-action/analyze@v2
49 changes: 27 additions & 22 deletions .github/workflows/rubyonrails.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# This workflow uses actions that are not certified by GitHub. They are
# provided by a third-party and are governed by separate terms of service,
# privacy policy, and support documentation.
# 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.
#
# This workflow will install a prebuilt Ruby version, install dependencies, and
# run tests and linters.
name: "Ruby on Rails CI"
# 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
Expand All @@ -29,33 +31,36 @@ jobs:
RAILS_ENV: test
DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test"
steps:
- name: Checkout code
- name: Sacar código fuente
uses: actions/checkout@v3
# Add or replace dependency steps here
- name: Install Ruby and gems
uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
# 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
# Add or replace database setup steps here
- name: Set up database schema
run: (cd test/dummy; cp .env.plantilla .env; bin/rails db:schema:load)
# Add or replace test runners here
- name: Run tests
- name: Instalar paquetes adicionales
run: sudo apt install poppler-utils # Incluye pdftoppm
- name: Configurar esquema de base de datos
run: (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: Checkout code
- name: Sacar código fuente
uses: actions/checkout@v3
- name: Install Ruby and gems
uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
- name: Instalar Ruby y gemas
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2.0-preview1'
bundler-cache: true
# Add or replace any other lints here
- name: Security audit dependencies
# Agregue o remplace verificadores
- name: Verificación de seguridad a dependencias ruby
run: bin/bundler-audit --update
- name: Security audit application code
- name: Verificación de seguridad a código Ruby de la aplicación
run: bin/brakeman -q -w2
- name: Lint Ruby files
- name: Verificación al formato de código Ruby
run: bin/rubocop --parallel
70 changes: 36 additions & 34 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,25 @@
# Basado entre otros en: https://dev.to/mpressen/rails-minitest-gitlab-ci-31ap

include:
- template: Security/Dependency-Scanning.gitlab-ci.yml
- template: Security/License-Scanning.gitlab-ci.yml
- template: Security/SAST.gitlab-ci.yml
- template: Security/Secret-Detection.gitlab-ci.yml
- template: Security/DAST.gitlab-ci.yml
- template: Code-Quality.gitlab-ci.yml



image: "ruby:3.1.2"
image: "ruby:3.2.1"

services:
- name: vtamara/postgis-es_co:13.3-1
alias: postgres
- name: selenium/standalone-chrome
alias: chrome

variables:
RAILS_ENV: test
POSTGRES_ENABLED: "true"
POSTGRES_ENABLED: 'true'
POSTGRES_USER: runner
POSTGRES_PASSWORD: ""
POSTGRES_DB: sifasol_pru
POSTGRES_PASSWORD: ''
POSTGRES_DB: msipdes_pru
POSTGRES_HOST_AUTH_METHOD: trust
NOKOGIRI_USE_SYSTEM_LIBRARIES: "true"
SELENIUM_REMOTE_URL: http://chrome:4444/wd/hub
DAST_WEBSITE: http://example.com
RAILS_ENV: test
BUNDLE_PATH: vendor/bundle
NOKOGIRI_USE_SYSTEM_LIBRARIES: 'true'
CC_TEST_REPORTER_ID: "568b1ae5098341f2ba3eb9e36f304e17325eb93a7d021f3cfb1e9fbe94a9a40f"

CI: 'Si'

stages:
- test
- dast

test:
stage: test
Expand All @@ -44,35 +30,51 @@ test:
- vendor/bundle
before_script:
- uname -a
- cat /etc/os-release
- ruby -v
- whoami
- echo "HOME=${HOME}"
- pwd
- which ruby
- ruby -v
- export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR
- apt-get update -yy && apt-get install build-essential libpq-dev postgresql-client -y
- apt install -y poppler-utils # pdftoppm para presentar portada de anexo
- which pdftoppm
- curl -fsSL https://deb.nodesource.com/setup_16.x | bash - # https://www.linuxcapable.com/how-to-install-node-js-14-lts-16-npm-on-debian-11-bullseye/
- apt install -y -qq nodejs
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
- echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
- apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2
libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4
libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0
libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1
libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6
libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates
fonts-liberation libnss3 lsb-release xdg-utils wget libgbm-dev
- apt-get update -qq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yqq yarn
- yarn install
- gem install bundler --no-document
- bundle install --jobs $(nproc) "${FLAGS[@]}"
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
- chmod +x ./cc-test-reporter
- ./cc-test-reporter -v
- ./cc-test-reporter before-build
- cp .env.gitlab .env
- cp config/database.ci.yml config/database.yml
- cp db/structure.sql db/structure.sql.copia
- sed -e 's/provider = libc,//g;s/SET default_table_access_method.*/-- &/g' db/structure.sql.copia > db/structure.sql
- which psql
- bin/rails db:drop db:create db:setup
- bin/rails db:drop db:create db:setup db:seed
- bin/rails msip:indices
- yarn
- bin/rails msip:stimulus_motores
- bin/rails assets:precompile
- bin/pruebajs
- RAILS_ENV=test bin/rails assets:precompile
- yarn add -D puppeteer
- for i in __tests__/*js; do sed -i -e 's/puppeteer-core/puppeteer/g' $i; done
- cd ../..
script:
- (. .env && CONFIG_HOSTS=www.example.com bin/rails test)
- ./cc-test-reporter after-build -t simplecov --exit-code $?


- bin/regresion.sh
- exit_code=$?
after_script:
- ./cc-test-reporter after-build -t simplecov --exit-code $exit_code || true

sast:
stage: test
include:
- template: Security/SAST.gitlab-ci.yml
Loading

0 comments on commit c25214d

Please sign in to comment.