Criar e testar aplicações Ruby

Azure DevOps Services

Este artigo explica como criar projetos Ruby automaticamente.

Criar os Pipelines do Azure

Efetue os seguintes passos para configurar um pipeline para uma aplicação Ruby.

  1. Inicie sessão na sua organização do Azure DevOps e aceda ao seu projeto.

  2. Selecione Pipelines>Novo pipeline.

  3. Selecione GitHub como a localização do código fonte.

    Poderá ser redirecionado para o GitHub para iniciar sessão. Em caso afirmativo, introduza as suas credenciais do GitHub.

  4. Selecione o seu repositório de exemplo ruby.

  5. Selecione o Ruby modelo do pipeline.

  6. É gerado um ficheiro YAML. Selecione Guardar e executar>Consolidar diretamente no ramo principal e, em seguida, selecione Guardar e executar novamente.

  7. Aguarde a conclusão da execução.

Tem um ficheiro YAML funcional (azure-pipelines.yml) no seu repositório que está pronto para personalizar.

Dica

Para efetuar alterações ao ficheiro YAML, conforme descrito neste artigo, selecione o pipeline na página Pipelines e, em seguida, Edite o azure-pipelines.yml ficheiro.

Criar ambiente

Pode utilizar os Pipelines do Azure para criar os seus projetos Ruby sem ter de configurar qualquer infraestrutura própria. O Ruby é pré-instalado em agentes alojados na Microsoft nos Pipelines do Azure. Pode utilizar agentes linux, macOS ou Windows para executar as suas compilações.

Para obter as versões exatas do Ruby pré-instaladas, veja Agentes alojados na Microsoft. Para instalar uma versão específica do Ruby em agentes alojados na Microsoft, adicione a tarefa Utilizar Versão Ruby ao início do pipeline.

Utilizar uma versão específica do Ruby

Adicione a tarefa Utilizar Versão Ruby para definir a versão do Ruby utilizada no pipeline. Este fragmento adiciona Ruby 2.4 ou posterior ao caminho e define as tarefas de pipeline subsequentes para utilizá-lo.

# 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 Trilhos

Para instalar o Rails, adicione o fragmento seguinte ao seu azure-pipelines.yml ficheiro.

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

Instalar dependências

Para utilizar o Bundler para instalar dependências, adicione o seguinte fragmento ao seu azure-pipelines.yml ficheiro.

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

Executar Rake

Para executar o Rake no contexto do pacote atual (conforme definido no gemfile), adicione o fragmento seguinte ao seu azure-pipelines.yml ficheiro.

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

Publicar resultados do teste

O código de exemplo inclui testes de unidades escritos com RSpec. Quando o Rake é executado pelo passo anterior, executa os testes RSpec. O RSpec RakeTask no Rakefile foi configurado para produzir resultados de estilo JUnit com o RspecJUnitFormatter.

Adicione a tarefa Publicar Resultados de Teste para publicar os resultados do teste de estilo JUnit no servidor. Obtém uma experiência avançada de relatórios de teste que pode utilizar para resolver problemas de testes falhados e para análise de tempo de teste.

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

Publicar resultados de cobertura de código

O código de exemplo utiliza SimpleCov para recolher dados de cobertura de código quando os testes de unidades são executados. O SimpleCov está configurado para utilizar formadores de relatórios Cobertura e HTML.

Adicione a tarefa Publicar Resultados de Cobertura do Código para publicar os resultados de cobertura do código no servidor. Quando o fizer, as métricas de cobertura podem ser vistas no resumo da compilação e os relatórios HTML podem ser transferidos para análise adicional.

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

Criar uma imagem e enviar para o registo de contentor

Para a sua aplicação Ruby, também pode criar uma imagem e enviá-la para um registo de contentor.