Compilar y probar aplicaciones de Ruby

Azure DevOps Services

En este artículo se explica cómo compilar automáticamente proyectos de Ruby.

Creación de Azure Pipelines

Siga estos pasos para configurar una canalización para una aplicación de Ruby.

  1. Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.

  2. Seleccione Canalizaciones>Nueva canalización.

  3. Seleccione GitHub como ubicación del código fuente.

    Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.

  4. Seleccione el repositorio de ejemplo de Ruby.

  5. Seleccione la plantilla Ruby de la canalización.

  6. Se genera un archivo YAML. Seleccione Guardar y ejecutar>Confirmar directamente en la rama principal, y, a continuación, elija Guardar y ejecutar de nuevo.

  7. Espere a que finalice.

Ahora ya tiene una canalización YAML que funciona (azure-pipelines.yml) en el repositorio que está lista para que la personalice.

Sugerencia

Para realizar cambios en el archivo YAML como se describe en este artículo, seleccione la canalización en la página Canalizaciones y, luego, haga clic en Editar para modificar el archivo azure-pipelines.yml.

Entorno de compilación

Puede usar Azure Pipelines para compilar los proyectos de Ruby sin necesidad de configurar ninguna infraestructura propia. Ruby está preinstalado en agentes hospedados por Microsoft en Azure Pipelines. Puede usar agentes de Linux, macOS o Windows para ejecutar las compilaciones.

Para conocer las versiones exactas de Ruby que están preinstaladas, consulte Agentes hospedados por Microsoft. Para instalar una versión específica de Ruby en agentes hospedados por Microsoft, agregue la tarea Usar versión de Ruby al principio de la canalización.

Usar una versión específica de Ruby

Agregue la tarea Usar versión de Ruby para establecer la versión de Ruby usada en la canalización. Este fragmento de código agrega Ruby 2.4 o posterior a la ruta de acceso y establece las tareas de canalización posteriores para usarlas.

# https://learn.microsoft.com/azure/devops/pipelines/ecosystems/ruby
pool:
  vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'

steps:
- task: UseRubyVersion@0
  inputs:
    versionSpec: '>= 2.5'
    addToPath: true

Instalar Rails

Para instalar Rails, agregue el siguiente fragmento de código al archivo azure-pipelines.yml.

- script: gem install rails && rails -v
  displayName: 'gem install rails'

Instalar dependencias

Para usar Bundler para instalar dependencias, agregue el siguiente fragmento de código al archivo azure-pipelines.yml.

- script: |
    CALL gem install bundler
    bundle install --retry=3 --jobs=4
  displayName: 'bundle install'

Ejecutar Rake

Para ejecutar Rake en el contexto de la agrupación actual (tal como se define en el archivo Gemfile), agregue el siguiente fragmento de código al archivo azure-pipelines.yml.

- script: bundle exec rake
  displayName: 'bundle exec rake'

Publicación de los resultados de las pruebas

El código de ejemplo incluye pruebas unitarias escritas mediante RSpec. Cuando Rake se ejecuta en el paso anterior, este ejecuta las pruebas de RSpec. El RSpec RakeTask del archivo Rakefile se ha configurado para generar resultados de estilo JUnit mediante RspecJUnitFormatter.

Agregue la tarea Publicar resultados de pruebas para publicar resultados de pruebas de estilo JUnit en el servidor. Obtendrá una experiencia enriquecida de informes de pruebas que puede usar para solucionar los errores de las pruebas y para el análisis de tiempo de pruebas.

- task: PublishTestResults@2
  condition: succeededOrFailed()
  inputs:
    testResultsFiles: '**/test-*.xml'
    testRunTitle: 'Ruby tests'

Publicar resultados de cobertura de código

El código de ejemplo utiliza SimpleCov para recopilar datos de cobertura de código cuando se ejecutan pruebas unitarias. SimpleCov está configurado para usar formateadores de informes de cobertura y HTML.

Agregue la tarea Publicar resultados de cobertura de código para publicar los resultados de cobertura de código en el servidor. Al hacerlo, se pueden ver las métricas de cobertura en el resumen de compilación y los informes HTML para su posterior análisis.

- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'

Compilar e insertar imágenes en un registro de contenedor

Para la aplicación ruby, también puede compilar una imagen e insertarla en un registro de contenedor.