Ruby uygulamaları derleme ve test etme

Azure DevOps Services

Bu makalede Ruby projelerini otomatik olarak oluşturma açıklanmaktadır.

Azure Pipelines'u oluşturma

Ruby uygulaması için işlem hattı ayarlamak için aşağıdaki adımları uygulayın.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. İşlem HatlarıYeni işlem hattı'ni> seçin.

  3. Kaynak kodunuzun konumu olarak GitHub'ı seçin.

    Oturum açmak için GitHub'a yönlendirilebilirsiniz. Öyleyse GitHub kimlik bilgilerinizi girin.

  4. Ruby örnek deponuzu seçin.

  5. Ruby İşlem hattınızın şablonunu seçin.

  6. YAML dosyası oluşturulur. Kaydet'i seçipCommit'i doğrudan ana dala çalıştırın > ve ardından Kaydet ve yeniden çalıştır'ı seçin.

  7. Çalıştırmanın bitmesini bekleyin.

Deponuzda özelleştirmeniz için hazır çalışan bir YAML dosyanız (azure-pipelines.yml) var.

İpucu

Bu makalede açıklandığı gibi YAML dosyasında değişiklik yapmak için İşlem Hatları sayfasında işlem hattını seçin ve dosyayı düzenleyinazure-pipelines.yml.

Ortam oluşturma

Kendi altyapınızı ayarlamanıza gerek kalmadan Ruby projelerinizi oluşturmak için Azure Pipelines'ı kullanabilirsiniz. Ruby, Azure Pipelines'da Microsoft tarafından barındırılan aracılara önceden yüklenmiştir. Derlemelerinizi çalıştırmak için Linux, macOS veya Windows aracılarını kullanabilirsiniz.

Ruby'nin önceden yüklenmiş tam sürümleri için Bkz. Microsoft tarafından barındırılan aracılar. Microsoft tarafından barındırılan aracılara Ruby'nin belirli bir sürümünü yüklemek için işlem hattınızın başına Ruby Sürümünü Kullan görevini ekleyin.

Belirli bir Ruby sürümünü kullanma

İşlem hattınızda kullanılan Ruby sürümünü ayarlamak için Ruby Sürümünü Kullan görevini ekleyin. Bu kod parçacığı yola Ruby 2.4 veya üzerini ekler ve bunu kullanmak için sonraki işlem hattı görevlerini ayarlar.

# 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

Rayları Yükleme

Rails'i yüklemek için dosyanıza azure-pipelines.yml aşağıdaki kod parçacığını ekleyin.

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

Bağımlılıkları yükleme

Bağımlılıkları yüklemek için Bundler'ı kullanmak için dosyanıza azure-pipelines.yml aşağıdaki kod parçacığını ekleyin.

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

Rake'i çalıştırma

Rake'i geçerli paket bağlamında (Gemfile içinde tanımlandığı gibi) yürütmek için dosyanıza azure-pipelines.yml aşağıdaki kod parçacığını ekleyin.

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

Test sonuçlarını yayımlama

Örnek kod , RSpec kullanılarak yazılan birim testlerini içerir. Rake önceki adım tarafından çalıştırıldığında RSpec testlerini çalıştırır. Rakefile içindeki RSpec RakeTask, RspecJUnitFormatter kullanılarak JUnit stili sonuçlar üretecek şekilde yapılandırıldı.

JUnit stili test sonuçlarını sunucuda yayımlamak için Test Sonuçlarını Yayımla görevini ekleyin. Başarısız testlerin sorunlarını gidermek ve test zamanlama analizi için kullanabileceğiniz zengin bir test raporlama deneyimi elde edersiniz.

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

Kod kapsamı sonuçlarını yayımlama

Örnek kod, birim testleri çalıştırıldığında kod kapsamı verilerini toplamak için SimpleCov kullanır. SimpleCov, Cobertura ve HTML rapor biçimlendiricilerini kullanacak şekilde yapılandırılmıştır.

Kod kapsamı sonuçlarını sunucuda yayımlamak için Kod Kapsamı Sonuçlarını Yayımla görevini ekleyin. Bunu yaptığınızda kapsam ölçümleri derleme özetinde görülebilir ve daha fazla analiz için HTML raporları indirilebilir.

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

Görüntü oluşturma ve kapsayıcı kayıt defterine gönderme

Ruby uygulamanız için bir görüntü oluşturabilir ve bunu bir kapsayıcı kayıt defterine gönderebilirsiniz.