Générer et tester des applications Ruby

Azure DevOps Services

Cet article explique comment générer automatiquement des projets Ruby.

Créer les pipelines Azure

Effectuez les étapes suivantes pour configurer un pipeline pour une application Ruby.

  1. Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.

  2. Sélectionnez Pipelines>Nouveau pipeline.

  3. Sélectionnez GitHub comme emplacement de votre code source.

    Vous serez peut-être redirigé vers GitHub pour vous connecter. Si c’est le cas, entrez vos informations d’identification GitHub.

  4. Sélectionnez votre dépôt d’exemples Ruby.

  5. Sélectionnez le modèle Ruby pour votre pipeline.

  6. Un fichier YAML est généré. Sélectionnez Enregistrer et exécuter>Commiter directement dans la branche primaire, puis choisissez de nouveau Enregistrer et exécuter.

  7. Attendez la fin de l’exécution.

Vous disposez d’un fichier YAML opérationnel (azure-pipelines.yml) dans votre dépôt, prêt à être personnalisé.

Conseil

Pour apporter des modifications au fichier YAML comme décrit dans cet article, sélectionnez le pipeline dans la page Pipelines, puis Modifier pour modifier le fichier azure-pipelines.yml.

Environnement de génération

Vous pouvez utiliser Azure Pipelines pour générer vos projets Ruby sans avoir à configurer vous-même une infrastructure. Ruby est préinstallé sur des agents hébergés par Microsoft dans Azure Pipelines. Vous pouvez utiliser des agents Linux, macOS ou Windows pour exécuter vos builds.

Pour connaître les versions exactes de Ruby préinstallées, consultez Agents hébergés par Microsoft. Pour installer une version spécifique de Ruby sur des agents hébergés par Microsoft, ajoutez la tâche Utiliser la version de Ruby au début de votre pipeline.

Utiliser une version spécifique de Ruby

Ajoutez la tâche Utiliser la version de Ruby pour définir la version de Ruby utilisée dans votre pipeline. Cet extrait de code ajoute Ruby 2.4 (ou version ultérieure) au chemin et définit les tâches de pipeline suivantes pour son utilisation.

# 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

Installer Rails

Pour installer Rails, ajoutez l’extrait de code suivant à votre fichier azure-pipelines.yml.

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

Installer des dépendances

Pour utiliser Bundler pour installer des dépendances, ajoutez l’extrait de code suivant à votre fichier azure-pipelines.yml.

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

Exécuter Rake

Pour exécuter Rake dans le contexte du bundle actuel (comme défini dans votre Gemfile), ajoutez l’extrait de code suivant à votre fichier azure-pipelines.yml.

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

Publier les résultats des tests

L’exemple de code inclut des tests unitaires écrits avec RSpec. Quand Rake est exécuté à l’étape précédente, il exécute les tests RSpec. La RakeTask RSpec dans le Rakefile a été configurée pour produire des résultats de style JUnit avec le RspecJUnitFormatter.

Ajoutez la tâche Publier les résultats de test pour publier les résultats des tests de style JUnit sur le serveur. Vous bénéficiez d’une expérience enrichie pour la création de rapports de test, vous permettant de résoudre les problèmes entraînant des échecs de test et d’effectuer une analyse du minutage des tests.

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

Publier les résultats de la couverture du code

L’exemple de code utilise SimpleCov pour collecter des données de couverture du code quand des tests unitaires sont exécutés. SimpleCov est configuré pour utiliser Cobertura et des formateurs de rapport HTML.

Ajoutez la tâche Publier les résultats de la couverture du code pour publier les résultats de la couverture du code sur le serveur. Les métriques de couverture sont alors visibles dans le résumé de build et les rapports HTML peuvent être téléchargés pour une analyse plus approfondie.

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

Générer une image et pousser (push) l’image sur le registre de conteneurs

Pour votre application Ruby, vous pouvez également générer une image et la pousser sur un registre de conteneurs.