Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | 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 é pré-instalado em agentes hospedados pela Microsoft para Linux, macOS e Windows. Você não precisa configurar mais nada para criar projetos ruby. Para ver quais versões do Ruby são pré-instaladas, consulte Software.
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Um projeto do Azure DevOps. – Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita. – Conhecimento básico do YAML e do Azure Pipelines. Para mais informações, veja Como 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 build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines. – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço. |
| GitHub | - Uma conta do GitHub . – Uma conexão de serviço do GitHub para autorizar o Azure Pipelines. |
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Um projeto do Azure DevOps. - Um agente autogerenciado, com o Ruby instalado. Para criar um, consulte Agentes auto-hospedados. – Conhecimento básico do YAML e do Azure Pipelines. Para mais informações, veja Como 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 build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines. – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço. |
| GitHub | - Uma conta do GitHub . – Uma conexão de serviço do GitHub para autorizar o Azure Pipelines. |
Criar o Azure Pipelines
Siga estas etapas para configurar um pipeline para um aplicativo Ruby.
Entre na organização do Azure DevOps e acesse seu projeto.
Vá para Pipelines>Novo pipeline.
Selecione GitHub como o local do código-fonte.
Você pode ser redirecionado para o GitHub para então entrar. Nesse caso, insira suas credenciais do GitHub.
Selecione o repositório de exemplo do Ruby.
Selecione o modelo para o
Rubypipeline.Um arquivo YAML é gerado. Selecione Salvar e executar>Comitar diretamente na ramificação principal e, em seguida, selecione Salvar e executar novamente.
Aguarde a conclusão da execução do pipeline. Normalmente, isso leva de 2 a 5 minutos para um projeto ruby básico.
Agora você tem um arquivo YAML funcional (azure-pipelines.yml) em seu repositório que é executado automaticamente quando você envia por push as alterações de código. Esse arquivo pode ser personalizado para atender às necessidades específicas do projeto.
Dica
Para fazer alterações no arquivo YAML descrito neste artigo, selecione o pipeline na página Pipelines e selecione Editar para o azure-pipelines.yml arquivo.
Ambiente de build
Você pode usar o Azure Pipelines para criar seus projetos ruby sem precisar configurar sua própria infraestrutura. O Ruby é pré-instalado em agentes hospedados pela Microsoft no Azure Pipelines. Você pode usar agentes linux, macOS ou Windows para executar seus builds.
Para versões exatas do Ruby pré-instaladas, consulte os agentes hospedados pela Microsoft. Para instalar uma versão específica do Ruby em agentes hospedados pela Microsoft, adicione a tarefa Use Ruby Version ao início do pipeline.
Usar uma versão específica do Ruby
Adicione a tarefa Usar Versão do Ruby para definir a versão do Ruby em seu pipeline. Este snippet adiciona o Ruby 3.4 ou posterior ao caminho e define as tarefas de pipeline subsequentes para usá-lo. Para ver quais versões do Ruby sã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 trilhos
Para instalar o Rails, adicione o snippet a seguir ao arquivo azure-pipelines.yml .
- script: gem install rails && rails -v
displayName: 'Install Rails'
Instalar dependências
Use o Bundler para instalar as dependências de gem do projeto. O Bundler lê seu Gemfile e Gemfile.lock para garantir que as mesmas versões de gems estejam instaladas no pipeline que em 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é três vezes e --jobs=4permite a instalação paralela de gemas para compilações mais rápidas.
Executar Rake
Para executar o Rake no contexto do pacote atual (conforme definido em seu Gemfile), adicione o snippet a seguir ao arquivo azure-pipelines.yml .
- script: bundle exec rake
displayName: 'bundle exec rake'
Publicar resultados do teste
O código de amostra inclui testes de unidade escritos com RSpec. Quando o comando Rake é executado na etapa anterior, ele executa os testes do 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 resultados de 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 SimpleCov para coletar dados de cobertura de código quando os testes de unidade são executados. SimpleCov está configurado para usar formatadores de relatório Cobertura e HTML.
Adicione a tarefa Publicar Resultados de Cobertura de Código para publicar os resultados de cobertura de código no servidor. Isso permite exibir as métricas de cobertura no resumo do build 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 pipeline
Aqui está um arquivo completo azure-pipelines.yml que demonstra todos os conceitos abordados neste artigo. Este pipeline:
- Gatilhos por alterações no branch principal
- Usa o Ubuntu como o ambiente de build
- Configura a versão do Ruby especificada
- Instala dependências do projeto
- Executa testes usando Rake
- Publica os resultados do teste e as 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'