Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Pelajari cara menggunakan Azure Pipelines untuk membangun, menguji, dan menyebarkan aplikasi Ruby Anda secara otomatis.
Prasyarat
Ruby telah diinstal sebelumnya pada agen yang dihosting Microsoft untuk Linux, macOS, dan Windows. Anda tidak perlu menyiapkan apa pun lagi untuk membangun proyek Ruby. Untuk melihat versi Ruby mana yang telah diinstal sebelumnya, lihat Perangkat Lunak.
| Produk | Persyaratan |
|---|---|
| Azure DevOps | - Proyek Azure DevOps. - Kemampuan untuk menjalankan pipeline pada agen yang di-host oleh Microsoft. Anda dapat membeli pekerjaan paralel atau Anda dapat meminta opsi gratis. - Pengetahuan dasar tentang YAML dan Azure Pipelines. Untuk informasi selengkapnya, lihat Buat pipa pertama Anda. - Izin: - Untuk membuat alur: Anda harus berada di grup Kontributor dan grup harus mengatur izin Buat alur build ke Izinkan. Anggota grup Administrator Proyek dapat mengelola alur. - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Pembuat untuk koneksi layanan. |
| GitHub | - Akun GitHub . - Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines. |
| Produk | Persyaratan |
|---|---|
| Azure DevOps | - Proyek Azure DevOps. - Agen yang di-host sendiri dengan Ruby terinstal. Untuk membuatnya, lihat Agen yang dihost sendiri. - Pengetahuan dasar tentang YAML dan Azure Pipelines. Untuk informasi selengkapnya, lihat Buat pipa pertama Anda. - Izin: - Untuk membuat alur: Anda harus berada di grup Kontributor dan grup harus mengatur izin Buat alur build ke Izinkan. Anggota grup Administrator Proyek dapat mengelola alur. - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Pembuat untuk koneksi layanan. |
| GitHub | - Akun GitHub . - Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines. |
Buat Azure Pipelines
Ikuti langkah-langkah ini untuk menyiapkan alur untuk aplikasi Ruby.
Masuk ke organisasi Azure DevOps Anda dan buka proyek Anda.
Buka Pipeline>Pipeline baru.
Pilih GitHub sebagai lokasi kode sumber Anda.
Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.
Pilih repositori sampel Ruby Anda.
RubyPilih templat untuk alur Anda.File YAML dihasilkan. Pilih Simpan dan jalankan>Penerapan langsung ke cabang utama, lalu pilih Simpan dan jalankan lagi.
Tunggu hingga pengoperasian pipeline selesai. Ini biasanya memakan waktu 2-5 menit untuk proyek Ruby dasar.
Anda sekarang memiliki file YAML yang berfungsi (azure-pipelines.yml) di repositori Anda yang secara otomatis berjalan saat Anda mendorong perubahan kode. File ini dapat disesuaikan untuk memenuhi kebutuhan spesifik proyek Anda.
Petunjuk / Saran
Untuk membuat perubahan pada file YAML yang dijelaskan dalam artikel ini, pilih alur pada halaman Alur , lalu pilih Edit untuk file tersebut azure-pipelines.yml .
Membangun lingkungan
Anda dapat menggunakan Azure Pipelines untuk membangun proyek Ruby Anda tanpa perlu menyiapkan infrastruktur Anda sendiri. Ruby telah diinstal sebelumnya pada agen yang dihosting Microsoft di Azure Pipelines. Anda dapat menggunakan agen Linux, macOS, atau Windows untuk menjalankan build Anda.
Untuk versi Ruby yang tepat yang telah diinstal sebelumnya, lihat agen yang dihosting Microsoft. Untuk menginstal versi Ruby tertentu pada agen yang dihosting Microsoft, tambahkan tugas Gunakan Versi Ruby ke awal alur Anda.
Menggunakan versi Ruby tertentu
Tambahkan tugas Gunakan Versi Ruby untuk mengatur versi Ruby di alur Anda. Cuplikan ini menambahkan Ruby 3.4 atau yang lebih baru ke path dan mengatur tugas alur kerja berikutnya untuk menggunakannya. Untuk melihat versi Ruby mana yang telah diinstal sebelumnya pada agen yang dihosting Microsoft, lihat Perangkat Lunak.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UseRubyVersion@0
inputs:
versionSpec: '>= 3.4'
addToPath: true
displayName: 'Set Ruby version'
Instalasi Rails
Untuk menginstal Rails, tambahkan cuplikan berikut ke file Anda azure-pipelines.yml .
- script: gem install rails && rails -v
displayName: 'Install Rails'
Pasang dependensi
Gunakan Bundler untuk menginstal dependensi permata proyek Anda. Bundler membaca Gemfile dan Gemfile.lock Anda untuk memastikan versi gem yang sama diinstal di pipeline dengan di lingkungan pengembangan Anda.
- script: |
gem install bundler
bundle install --retry=3 --jobs=4
displayName: 'Install dependencies with Bundler'
Parameter --retry=3 mencoba kembali penginstalan yang gagal hingga 3 kali, dan --jobs=4 memungkinkan penginstalan paralel gems untuk build yang lebih cepat.
Jalankan Rake
Untuk menjalankan Rake dalam konteks bundel saat ini (seperti yang didefinisikan dalam Gemfile Anda), tambahkan cuplikan berikut ke file Anda azure-pipelines.yml .
- script: bundle exec rake
displayName: 'bundle exec rake'
Menerbitkan hasil pengujian
Kode sampel mencakup pengujian unit yang ditulis dengan RSpec. Ketika Rake berjalan di langkah sebelumnya, Rake menjalankan pengujian RSpec. RSpec RakeTask di Rakefile dikonfigurasi untuk menghasilkan hasil gaya JUnit menggunakan RspecJUnitFormatter.
Tambahkan tugas Terbitkan Hasil Pengujian untuk menerbitkan hasil pengujian gaya JUnit ke server.
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Ruby tests'
Menerbitkan hasil cakupan kode
Kode sampel menggunakan SimpleCov untuk mengumpulkan data cakupan kode saat pengujian unit berjalan. SimpleCov dikonfigurasi untuk menggunakan pemformat laporan Cobertura dan HTML.
Tambahkan tugas Terbitkan Hasil Cakupan Kode untuk menerbitkan hasil cakupan kode ke server. Ini memungkinkan Anda melihat metrik cakupan dalam ringkasan build dan mengunduh laporan HTML untuk analisis lebih lanjut.
- task: PublishCodeCoverageResults@2
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'
failIfCoverageEmpty: true
Contoh alur lengkap
Berikut adalah file lengkap azure-pipelines.yml yang menunjukkan semua konsep yang dibahas dalam artikel ini. Alur ini:
- Pemicu perubahan di cabang utama
- Menggunakan Ubuntu sebagai lingkungan build
- Menyiapkan versi Ruby yang ditentukan
- Menginstal dependensi proyek
- Menjalankan pengujian menggunakan Rake
- Menerbitkan hasil pengujian dan metrik cakupan kode
# 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'