Partilhar via


Crie e teste aplicativos Ruby

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Saiba como usar o Azure Pipelines para criar, testar e implantar automaticamente seus aplicativos Ruby.

Pré-requisitos

O Ruby está pré-instalado em agentes hospedados pela Microsoft para Linux, macOS e Windows. Você não precisa configurar mais nada para construir projetos Ruby. Para ver quais versões do Ruby estão pré-instaladas, consulte Software.

Produto Requisitos
Azure DevOps - Um projeto Azure DevOps.
- Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar um nível gratuito.
- Conhecimentos básicos de YAML e Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
     - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligação de serviço do GitHub para autorizar o Azure Pipelines.
Produto Requisitos
Azure DevOps - Um projeto Azure DevOps.
- Um agente auto-hospedado com Ruby instalado. Para criar um, consulte Agentes autohospedados.
- Conhecimentos básicos de YAML e Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
    - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligação de serviço do GitHub para autorizar o Azure Pipelines.

Criar os Pipelines do Azure

Siga estas etapas para configurar um pipeline para um aplicativo Ruby.

  1. Entre na sua organização do Azure DevOps e vá para o seu projeto.

  2. Vá para Pipelines>Novo Pipeline.

  3. Selecione GitHub como o local do seu código-fonte.

    Você pode ser redirecionado para o GitHub para entrar. Em caso afirmativo, insira suas credenciais do GitHub.

  4. Selecione seu repositório de exemplo Ruby.

  5. Selecione o Ruby modelo para o seu pipeline.

  6. Um arquivo YAML é gerado. Selecione Salvar e executar>Confirmar diretamente na ramificação principal e, em seguida, selecione Salvar e executar novamente.

  7. Aguarde a conclusão da execução do pipeline. Isso normalmente leva de 2 a 5 minutos para um projeto Ruby básico.

Agora você tem um arquivo YAML (azure-pipelines.yml) funcional em seu repositório que é executado automaticamente quando você faz o push de alterações de código. Este arquivo pode ser personalizado para atender às necessidades específicas do seu projeto.

Sugestão

Para fazer alterações no arquivo YAML descrito neste artigo, selecione o pipeline na página Pipelines e, em seguida, selecione Editar para o azure-pipelines.yml arquivo.

Ambiente de construção

Você pode usar o Azure Pipelines para criar seus projetos Ruby sem precisar configurar nenhuma infraestrutura própria. O Ruby é pré-instalado em agentes hospedados pela Microsoft no Azure Pipelines. Você pode usar agentes Linux, macOS ou Windows para executar suas compilações.

Para obter as versões exatas do Ruby que estão pré-instaladas, consulte Agentes hospedados pela Microsoft. Para instalar uma versão específica do Ruby em agentes hospedados pela Microsoft, adicione a tarefa Usar Versão Ruby ao início do pipeline.

Usar uma versão específica do Ruby

Adicione a tarefa Usar versão Ruby para definir a versão Ruby em seu pipeline. Esse trecho adiciona Ruby 3.4 ou posterior ao caminho e define tarefas de pipeline subsequentes para usá-lo. Para ver quais versões do Ruby estão pré-instaladas em agentes hospedados pela Microsoft, consulte Software.

pool:
  vmImage: 'ubuntu-latest' 

steps:
- task: UseRubyVersion@0 
  inputs:
    versionSpec: '>= 3.4' 
    addToPath: true
  displayName: 'Set Ruby version'

Instalar Rails

Para instalar o Rails, adicione o seguinte trecho ao seu azure-pipelines.yml arquivo.

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

Instalar dependências

Use o Bundler para instalar as dependências de gemas do seu projeto. O Bundler lê o seu Gemfile e Gemfile.lock para garantir que as mesmas versões de gema sejam instaladas no pipeline como no seu ambiente de desenvolvimento.

- script: |
    gem install bundler
    bundle install --retry=3 --jobs=4
  displayName: 'Install dependencies with Bundler'

O --retry=3 sinalizador tenta novamente instalações com falha até 3 vezes, e --jobs=4å permite a instalação paralela de gems para compilações mais rápidas.

Executar Rake

Para executar o Rake no contexto do pacote atual (conforme definido no seu Gemfile), adicione o seguinte trecho ao seu azure-pipelines.yml arquivo.

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

Publicar resultados de testes

O código de exemplo inclui testes de unidade escritos com RSpec. Quando o Rake é executado na etapa anterior, ele executa os testes RSpec. O RSpec RakeTask no Rakefile é configurado para produzir resultados no estilo JUnit usando o RspecJUnitFormatter.

Adicione a tarefa Publicar resultados do teste para publicar os resultados do teste no estilo JUnit no servidor.

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

Publicar resultados de cobertura de código

O código de exemplo usa o SimpleCov para coletar dados de cobertura de código quando os testes de unidade são executados. O SimpleCov está configurado para usar os formatadores de relatórios Cobertura e HTML.

Adicione a tarefa Publicar resultados de cobertura de código para publicar resultados de cobertura de código no servidor. Isso permite visualizar métricas de cobertura no resumo da compilação e baixar relatórios HTML para análise adicional.

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

Exemplo completo de linha de processamento

Aqui está um arquivo completo azure-pipelines.yml que demonstra todos os conceitos abordados neste artigo. Este pipeline:

  • Gatilhos para alterações na ramificação principal
  • Usa o Ubuntu como o ambiente de construção
  • Configura a versão Ruby especificada
  • Instala dependências do projeto
  • Executa testes usando Rake
  • Publica resultados de testes e métricas de cobertura de código
# Ruby pipeline example
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  rubyVersion: '3.4.7'

steps:
- task: UseRubyVersion@0
  inputs:
    versionSpec: '$(rubyVersion)'
    addToPath: true
  displayName: 'Set Ruby version to $(rubyVersion)'

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

- script: bundle exec rake
  displayName: 'Run tests with Rake'

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

- task: PublishCodeCoverageResults@2
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
    failIfCoverageEmpty: true
  displayName: 'Publish code coverage'