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 | Azure DevOps Server 2020
Artikel ini menjelaskan cara menggunakan Azure Pipelines untuk bekerja dengan proyek .NET Core. Artikel ini memandikan Anda melalui tugas-tugas berikut:
- Buat aplikasi web .NET Core dan unggah ke repositori GitHub.
- Buat proyek Azure DevOps dan alur Azure Pipelines untuk membangun proyek.
- Siapkan lingkungan build Anda dengan agen yang dihost sendiri.
- Pulihkan dependensi, buat proyek Anda, dan uji dengan tugas .NET Core (
DotNetCoreCLI@2) atau skrip. - Gunakan tugas .NET Core (
DotNetCoreCLI@2) untuk menambahkan perintah .NET SDK lainnya ke alur Anda. - Gunakan tugas Terbitkan Hasil Cakupan Kode (
Publish code coverage results v2) untuk menerbitkan hasil cakupan kode. - Paketkan dan kirimkan output build Anda ke alur Anda, umpan NuGet, arsip ZIP, atau target lainnya.
- Buat aplikasi web .NET Core dan unggah ke repositori GitHub.
- Buat proyek Azure DevOps dan alur Azure Pipelines untuk membangun proyek.
- Siapkan lingkungan build Anda dengan agen yang dihosting Microsoft atau yang dihost sendiri.
- Pulihkan dependensi, buat proyek Anda, dan uji dengan tugas .NET Core (
DotNetCoreCLI@2) atau skrip. - Gunakan tugas .NET Core (
DotNetCoreCLI@2) untuk menambahkan perintah .NET SDK lainnya ke alur Anda. - Gunakan tugas Terbitkan Hasil Cakupan Kode (
Publish code coverage results v2) untuk menerbitkan hasil cakupan kode. - Paketkan dan kirimkan output build Anda ke alur Anda, umpan NuGet, arsip ZIP, atau target lainnya.
Note
Untuk bekerja dengan proyek .NET Framework, lihat Membangun aplikasi ASP.NET dengan .NET Framework.
Prerequisites
Untuk menyelesaikan semua prosedur dalam artikel ini, Anda memerlukan prasyarat berikut:
- Organisasi Azure DevOps. Anda dapat membuatnya secara gratis.
- Keanggotaan dalam grup Administrator Proyek organisasi, sehingga Anda dapat membuat proyek Azure DevOps dan memberikan akses proyek ke alur. Pemilik organisasi Azure DevOps secara otomatis memiliki keanggotaan ini.
- Proyek Azure DevOps di organisasi. Membuat proyek di Azure DevOps.
- Kemampuan untuk menjalankan alur pada agen yang dihosting Microsoft, dengan meminta tingkat pekerjaan paralel gratis. Permintaan ini dapat memakan waktu beberapa hari kerja untuk diproses. Untuk informasi selengkapnya, lihat Mengonfigurasi dan Membayar Pekerjaan Paralel.
- Peran Administrator atau Pembuat untuk koneksi layanan, yang dapat Anda tetapkan sebagai Administrator Proyek.
- Akun dan repositori GitHub .
Untuk menyelesaikan semua prosedur dalam artikel ini, Anda memerlukan prasyarat berikut:
- Koleksi Azure DevOps.
- Proyek Azure DevOps yang dibuat di organisasi. Untuk petunjuknya, lihat Membuat proyek di Azure DevOps.
- Keanggotaan dalam grup Administrator Proyek, sehingga Anda dapat membuat proyek Azure DevOps dan memberikan akses proyek ke alur. Pemilik Organisasi Azure DevOps secara otomatis memiliki keanggotaan ini.
- Peran Administrator atau Pembuat untuk koneksi layanan, yang dapat Anda tetapkan sebagai Administrator Proyek.
- Akun dan repositori GitHub .
Membuat proyek .NET dan mengunggahnya ke GitHub
Jika Anda ingin menggunakan proyek .NET yang sudah ada di repositori GitHub, Anda dapat melewati bagian ini.
Jika Anda tidak memiliki proyek .NET untuk dikerjakan, buat proyek baru di komputer lokal Anda sebagai berikut:
- Instal .NET 8.0 SDK, atau pastikan sudah terinstal.
- Buka jendela terminal di komputer lokal Anda.
- Buat direktori proyek dan navigasikan ke direktori tersebut.
- Buat aplikasi web .NET 8 baru dengan menjalankan
dotnet new webapp -f net8.0. - Bangun dan jalankan aplikasi secara lokal dengan menggunakan
dotnet run. - Saat aplikasi dimulai, tekan Ctrl+C untuk mematikannya.
- Unggah atau sambungkan proyek lokal ke repositori GitHub Anda.
Membuat alur
Jika Anda memiliki alur yang ingin Anda gunakan, Anda dapat melewati bagian ini. Jika tidak, Anda dapat menggunakan editor alur YAML atau editor klasik untuk membuat alur sebagai berikut:
Di proyek Azure DevOps Anda, pilih Alur dari menu navigasi kiri.
Pilih Alur baru atau Buat alur jika alur ini adalah yang pertama dalam proyek.
Pada layar Di mana kode Anda , pilih GitHub.
Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.
Pada layar Pilih repositori , pilih repositori tempat aplikasi .NET Anda berada.
Anda mungkin diarahkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika demikian, pilih Setujui & instal.
Pada tab Konfigurasi , pilih Perlihatkan lainnya lalu pilih templat alur ASP.NET Core dari daftar. Templat ini menyediakan banyak langkah dan pengaturan yang dijelaskan artikel ini.
Anda juga dapat memilih Alur pemula pada tab Konfigurasi untuk memulai dengan alur minimal dan menambahkan langkah-langkah dan pengaturan sendiri.
Pada tab Tinjau , periksa kode YAML. Anda dapat menyesuaikan file untuk kebutuhan Anda. Misalnya, Anda dapat menentukan kumpulan agen yang berbeda atau menambahkan tugas untuk menginstal .NET SDK yang berbeda.
Di proyek Azure DevOps Anda, pilih Alur dari menu navigasi kiri.
Pilih Alur baru atau Buat alur jika alur ini adalah yang pertama dalam proyek.
Pilih jenis repositori sumber Anda. Untuk contoh ini, gunakan GitHub Enterprise Server.
Pada layar berikutnya, masukkan informasi berikut:
- URL untuk akun GitHub Anda, misalnya
https://github.com/myname. - Token akses pribadi GitHub (PAT) Anda.
- Nama koneksi layanan, misalnya
my-github.
- URL untuk akun GitHub Anda, misalnya
Pilih Buat.
Pilih repositori GitHub Anda.
Pada tab Konfigurasi , pilih Perlihatkan lainnya dan pilih templat alur ASP.NET Core dari daftar. Templat ini menyediakan banyak langkah dan pengaturan yang dijelaskan artikel ini.
Periksa kode alur YAML baru. Anda dapat menyesuaikan file YAML untuk kebutuhan Anda. Misalnya, Anda dapat menambahkan tugas untuk menginstal .NET SDK yang berbeda atau untuk menguji dan menerbitkan proyek Anda.
Saat Anda siap, pilih Simpan dan jalankan.
Secara opsional edit pesan Terapkan, lalu pilih Simpan dan jalankan lagi.
Pada tab Ringkasan , pilih pekerjaan di bagian Pekerjaan untuk menonton alur Anda beraksi.
Anda sekarang memiliki alur kerja yang siap disesuaikan.
Menyiapkan lingkungan build Anda
Azure Pipelines menggunakan agen yang dihost sendiri untuk membangun proyek .NET Core Anda. Anda dapat menggunakan .NET Core SDK dan runtime di agen Windows, Linux, macOS, atau Docker . Pastikan Anda memiliki versi .NET Core SDK dan runtime yang diperlukan yang diinstal pada agen.
Untuk menginstal versi tertentu dari .NET SDK, tambahkan UseDotNet@2 tugas ke file alur YAML atau gunakan tugas .NET Core di editor klasik.
Note
Untuk agen yang berjalan pada sistem fisik, menginstal SDK dan alat melalui alur Anda mengubah lingkungan build pada host agen.
Contoh cuplikan YAML berikut menginstal .NET SDK 8.0.x:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
Untuk menginstal SDK yang lebih baru, atur performMultiLevelLookup ke true.
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Anda dapat memilih kumpulan agen dan agen untuk pekerjaan build Anda. Anda juga dapat menentukan agen berdasarkan kemampuannya. Misalnya, cuplikan alur YAML berikut memilih kemampuan kumpulan dan agen.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
Anda dapat membangun proyek .NET Core anda dengan menggunakan .NET Core SDK dan runtime untuk Windows, Linux, atau macOS. Secara default, build Anda berjalan pada agen yang dihosting Microsoft, sehingga Anda tidak perlu menyiapkan infrastruktur.
Agen yang dihosting Microsoft Azure Pipelines menyertakan beberapa versi SDK .NET Core yang didukung sebelumnya. Lihat Agen yang dihosting Microsoft untuk daftar lengkap gambar dan contoh konfigurasi yang tersedia.
Cuplikan alur YAML berikut menetapkan OS Ubuntu untuk kumpulan agen.
pool:
vmImage: 'ubuntu-latest'
Agen yang dihosting Microsoft tidak menyertakan beberapa versi lama .NET Core SDK, dan biasanya tidak menyertakan versi prarilis. Jika Anda memerlukan versi SDK ini di agen yang dihosting Microsoft, Anda dapat menginstalnya dengan menggunakan tugas Gunakan DotNet (UseDotNet@2).
Misalnya, kode berikut menginstal .NET 5.0.x SDK:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
Agen Windows sudah menyertakan runtime .NET Core. Untuk menginstal SDK yang lebih baru, atur performMultiLevelLookup ke true seperti dalam cuplikan berikut:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Agen yang di-hosting secara mandiri
Atau, Anda dapat menggunakan agen yang dihost sendiri untuk membangun proyek .NET Core Anda. Anda dapat mengatur agen yang dihost sendiri Linux, macOS, atau Windows .
Agen yang dihost sendiri memungkinkan Anda:
- Hindari biaya menjalankan alat
UseDotNet@2penginstal. - Kurangi waktu build jika Anda memiliki repositori besar.
- Jalankan build inkremental.
- Gunakan pratinjau atau SDK privat yang tidak didukung Microsoft secara resmi.
- Gunakan SDK yang hanya tersedia di lingkungan perusahaan atau lokal Anda.
Untuk informasi selengkapnya, lihat agen yang di-host sendiri.
Memulihkan dependensi
Paket NuGet adalah cara agar proyek Anda bergantung pada kode yang tidak Anda bangun. Anda dapat mengunduh paket NuGet dan alat khusus proyek dengan menjalankan dotnet restore perintah, baik melalui tugas .NET Core (DotNetCoreCLI@2) atau sebagai skrip di alur Anda. Perintah dotnet restore menggunakan NuGet.exe yang dibungkus dengan .NET Core SDK dan hanya dapat memulihkan paket yang ditentukan dalam file proyek .NET Core *.csproj .
Anda dapat menggunakan tugas .NET Core (DotNetCoreCLI@2) untuk mengunduh dan memulihkan paket NuGet dari Azure Artifacts, NuGet.org, atau repositori NuGet eksternal atau internal lain yang diautentikasi. Jika umpan NuGet berada dalam proyek yang sama dengan alur Anda, Anda tidak perlu mengautentikasi. Untuk informasi selengkapnya, lihat tugas .NET Core (DotNetCoreCLI@2).
Saat menggunakan agen yang dihosting Microsoft, Anda mendapatkan komputer baru setiap kali menjalankan build, yang memulihkan paket dengan setiap proses. Pemulihan dapat memakan waktu yang signifikan. Untuk mengurangi masalah ini, gunakan Azure Artifacts atau agen yang dihost sendiri untuk memanfaatkan cache paket.
Alur berikut menggunakan DotNetCoreCLI@2 tugas untuk memulihkan umpan Azure Artifact.
trigger:
- main
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
variables:
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
feedsToUse: 'select'
vstsFeed: 'my-vsts-feed' # A series of numbers and letters
- task: DotNetCoreCLI@2
inputs:
command: 'build'
arguments: '--configuration $(buildConfiguration)'
displayName: 'dotnet build $(buildConfiguration)'
Di .NET Core SDK versi 2.0 dan yang lebih baru, paket dipulihkan secara otomatis saat Anda menjalankan perintah seperti dotnet build. Anda masih perlu menggunakan tugas .NET Core (DotNetCoreCLI@2) untuk memulihkan paket jika Anda menggunakan umpan terautentikasi.
Kelola kredensial untuk umpan terautentikasi dengan membuat koneksi layanan NuGet di Pengaturan Proyek>Koneksi Layanan>. Untuk informasi selengkapnya tentang koneksi layanan NuGet, lihat Menerbitkan paket NuGet dengan Azure Pipelines.
Memulihkan paket dari NuGet.org
Untuk memulihkan paket dari NuGet.org, perbarui alur Anda sebagai berikut.
Anda dapat menambahkan perintah pemulihan ke alur Anda dengan mengedit kode YAML secara langsung atau dengan menggunakan asisten tugas.
Tambahkan tugas .NET Core (DotNetCoreCLI@2) secara langsung dengan menyisipkan cuplikan berikut ke dalam file azure-pipelines.yml Anda sebelum tugas build Anda.
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: select
Untuk menggunakan asisten tugas:
- Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
- Pilih .NET Core dari katalog tugas.
- Pada layar konfigurasi, pilih pulihkan dari daftar dropdown Perintah .
- Di bidang Jalur ke proyek atau solusi , masukkan jalur ke file *.csproj Anda. Anda dapat menggunakan wildcard **/*.csproj untuk semua file *.csproj di semua subfolder.
- Agar Umpan ditambahkan, pastikan bahwa Umpan yang saya pilih di sini dan Gunakan paket dari NuGet.org dipilih.
- Pilih Tambahkan.
- Pilih Validasi dan simpan, lalu pilih Simpan untuk menerapkan perubahan.
Memulihkan paket dari umpan eksternal
Untuk menentukan repositori NuGet eksternal, masukkan URL ke dalam file NuGet.config di repositori Anda. Pastikan umpan kustom ditentukan dalam file NuGet.config Anda, dan kredensial tersebut ditentukan dalam koneksi layanan NuGet.
Untuk memulihkan paket dari umpan eksternal, tambahkan restore tugas seperti yang diinstruksikan di bagian sebelumnya, tetapi ubah pengaturan konfigurasi sebagai berikut:
Tambahkan tugas .NET Core (DotNetCoreCLI@2) secara langsung dengan menyisipkan cuplikan berikut ke dalam file azure-pipelines.yml Anda sebelum tugas build Anda. Ganti <NuGet service connection> dengan nama koneksi layanan Anda.
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: config
nugetConfigPath: NuGet.config # Relative to root of the repository
externalFeedCredentials: <NuGet service connection>
Untuk menggunakan asisten tugas:
- Tambahkan tugas .NET Core dan pilih pulihkan pada layar konfigurasi seperti pada prosedur sebelumnya.
- Agar Umpan ditambahkan, pilih Umpan di NuGet.configsaya .
- Di bawah Jalur ke NuGet.config, masukkan jalur ke file NuGet.config Anda, relatif terhadap akar repositori Anda. Anda dapat memilih elipsis ... di samping bidang untuk menelusuri dan memilih lokasi.
- Di bawah Kredensial untuk umpan di luar organisasi/koleksi ini, pilih kredensial yang akan digunakan untuk registri eksternal dalam file NuGet.config yang dipilih. Untuk umpan di organisasi yang sama, Anda dapat membiarkan bidang ini kosong. Kredensial build digunakan secara otomatis.
Memulihkan paket untuk proyek .NET Framework
Jika Anda juga memiliki proyek Microsoft .NET Framework dalam solusi Anda atau menggunakan package.json untuk menentukan dependensi Anda, gunakan tugas NuGetCommand@2 untuk memulihkan dependensi tersebut.
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
Note
Untuk Ubuntu 24.04 atau yang lebih tinggi, Anda harus menggunakan tugas NuGetAuthenticate alih-alih tugas NuGetCommand@2 dengan .NET CLI. Untuk informasi selengkapnya, lihat Dukungan untuk gambar yang dihosting Ubuntu yang lebih baru.
Membangun proyek Anda
Bangun proyek .NET Core Anda dengan menjalankan dotnet build perintah . Anda dapat menambahkan perintah ke alur Anda dengan menggunakan tugas .NET Core (DotNetCoreCLI@2) atau sebagai skrip baris perintah.
Gunakan tugas .NET Core
Anda dapat menambahkan tugas build dengan editor alur YAML dengan langsung mengedit file atau dengan menggunakan asisten tugas.
Tambahkan tugas .NET Core (DotNetCoreCLI@2) secara langsung dengan menyisipkan cuplikan berikut.
arguments Perbarui agar sesuai dengan kebutuhan Anda.
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Untuk menggunakan asisten tugas:
- Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
- Pilih tugas .NET Core (
DotNetCoreCLI@2). - Pilih build dari daftar dropdown Perintah .
- Di bidang Jalur ke proyek atau solusi , masukkan jalur ke file *.csproj Anda. Anda dapat menggunakan wildcard **/*.csproj untuk semua file *.csproj di semua subfolder.
- Pilih Tambahkan.
- Pilih Simpan untuk menerapkan perubahan.
Membangun .NET Core dengan skrip baris perintah
Anda juga dapat membuat menggunakan skrip baris perintah.
Untuk menambahkan baris perintah build dengan langsung mengedit file YAML, tambahkan kode berikut:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
Anda juga dapat menggunakan asisten tugas untuk menambahkan tugas Baris perintah .
- Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
- Pilih tugas Baris perintah (
CmdLine@2) dari daftar. - Di bidang Skrip , masukkan
dotnet buildperintah dengan parameter. Contohnya,dotnet build --configuration $(buildConfiguration). - Di bawahDirektori Kerja>, masukkan jalur ke file *.csproj sebagai direktori kerja. Jika Anda membiarkannya kosong, direktori kerja default ke
$(Build.SourcesDirectory). - Pilih Tambahkan.
- Pilih Simpan untuk menerapkan perubahan.
Menambahkan perintah .NET SDK lainnya ke alur Anda
Anda dapat menambahkan perintah .NET SDK lainnya ke alur Anda dengan menggunakan tugas .NET Core (DotNetCoreCLI@2) atau sebagai skrip.
Tambahkan perintah .NET CLI dengan tugas .NET Core
Tugas .NET Core (DotNetCoreCLI@2) memungkinkan Anda dengan mudah menambahkan perintah .NET CLI ke alur Anda. Anda dapat menambahkan tugas .NET Core (DotNetCoreCLI@2) dengan mengedit file YAML Anda atau dengan menggunakan editor klasik.
Untuk menambahkan perintah .NET Core menggunakan asisten tugas di editor alur YAML, lakukan langkah-langkah berikut:
- Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
- Pilih .NET Core dari katalog tugas.
- Pilih perintah yang ingin Anda jalankan dari daftar dropdown di bidang Perintah .
- Konfigurasikan opsi apa pun yang diperlukan.
- Pilih Tambahkan.
- Pilih Simpan untuk menerapkan perubahan.
Menambahkan perintah .NET Core CLI dalam skrip
Anda dapat menambahkan perintah .NET Core CLI sebagai script dalam file azure-pipelines.yml Anda. Contohnya:
steps:
# ...
- script: dotnet test <test-project>
Menginstal alat
Untuk menginstal alat global .NET Core seperti dotnetsay dalam build yang berjalan di Windows, tambahkan tugas .NET Core dan atur properti berikut dalam konfigurasi:
- Perintah: kustom
- Jalur ke proyek: biarkan kosong
-
Perintah kustom:
tool -
Argumen:
install -g dotnetsay
Untuk menjalankan alat, tambahkan tugas Baris Perintah dan masukkan dotnetsay di bidang Skrip .
Jalankan pengujian Anda
Ketika Anda memiliki proyek pengujian di repositori, Anda dapat menggunakan tugas .NET Core (DotNetCoreCLI@2) untuk menjalankan pengujian unit dengan menggunakan kerangka kerja pengujian seperti MSTest, xUnit, dan NUnit. Proyek pengujian harus mereferensikan Microsoft.NET.Test.SDK versi 15.8.0 atau yang lebih tinggi.
Hasil pengujian secara otomatis diterbitkan ke layanan dan tersedia untuk Anda dalam ringkasan build. Anda dapat menggunakan hasil pengujian untuk memecahkan masalah pengujian yang gagal dan menganalisis waktu pengujian.
Untuk menambahkan tugas pengujian ke alur Anda, tambahkan cuplikan berikut ke file azure-pipelines.yml Anda:
steps:
# ...
# do this after other tasks such as build
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Jika Anda menggunakan asisten tugas untuk menambahkan tugas .NET Core (DotNetCoreCLI@2), atur properti berikut:
- Perintah: uji
- Jalur ke proyek: Atur ke proyek pengujian dalam solusi Anda
-
Argumen:
--configuration $(BuildConfiguration)
Atau, Anda dapat menjalankan dotnet test perintah dengan pencatat tertentu lalu menggunakan PublishTestResults@2 tugas:
steps:
# ...
# do this after your tests run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Mengumpulkan cakupan kode
Saat Anda membangun di platform Windows, Anda dapat mengumpulkan metrik cakupan kode dengan menggunakan pengumpul data cakupan bawaan. Proyek pengujian harus mereferensikan Microsoft.NET.Test.SDK versi 15.8.0 atau yang lebih tinggi.
Saat Anda menggunakan tugas .NET Core (DotNetCoreCLI@2) untuk menjalankan pengujian, data cakupan secara otomatis diterbitkan ke server. Anda dapat mengunduh file *.coverage dari ringkasan build untuk dilihat di Visual Studio.
Untuk mengumpulkan cakupan kode, tambahkan --collect "Code Coverage" argumen saat Anda menambahkan tugas pengujian ke alur Anda.
steps:
# ...
# do this after other tasks such as build
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code Coverage"'
Jika Anda menggunakan asisten tugas untuk menambahkan tugas .NET Core (DotNetCoreCLI@2), atur properti berikut:
- Perintah: uji
- Jalur ke proyek: Atur ke proyek pengujian dalam solusi Anda
-
Argumen:
--configuration $(BuildConfiguration) --collect "Code Coverage"
Pastikan bahwa opsi Terbitkan hasil pengujian tetap dipilih.
Atau, untuk mengumpulkan hasil cakupan kode dengan menggunakan dotnet test perintah dengan pencatat tertentu lalu jalankan tugas PublishTestResults@2 , gunakan kode berikut:
steps:
# ...
# do this after your tests run
- script: dotnet test <test-project> --logger trx --collect "Code Coverage"
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Mengumpulkan metrik cakupan kode dengan Coverlet
Jika Anda membangun di Linux atau macOS, Anda dapat menggunakan Coverlet atau alat serupa untuk mengumpulkan metrik cakupan kode.
Anda dapat menerbitkan hasil cakupan kode ke server dengan tugas Terbitkan Hasil Cakupan Kode (PublishCodeCoverageResults@2). Anda harus mengonfigurasi alat cakupan untuk menghasilkan hasil dalam format cakupan Cobertura atau JaCoCo.
Untuk menjalankan pengujian dan menerbitkan cakupan kode dengan Coverlet:
- Tambahkan referensi ke
coverlet.collectorpaket NuGet. - Tambahkan cuplikan berikut ke file azure-pipelines.yml Anda:
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
inputs:
command: 'test'
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura'
publishTestResults: true
projects: '<test project directory>'
- task: PublishCodeCoverageResults@2
displayName: 'Publish code coverage report'
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Mengemas dan mengirimkan kode Anda
Untuk mengemas dan mengirimkan output build, Anda dapat:
- Terbitkan artefak build Anda ke Azure Pipelines.
- Buat paket NuGet dan terbitkan ke umpan NuGet Anda.
- Terbitkan paket NuGet Anda ke Azure Artifacts.
- Buat arsip ZIP untuk disebarkan ke aplikasi web.
- Terbitkan simbol ke server simbol Azure Artifacts atau berbagi file.
Anda juga dapat membuat gambar untuk aplikasi dan mendorongnya ke registri kontainer.
Menerbitkan artefak ke Azure Pipelines
Untuk menerbitkan output build .NET Anda ke alur Anda, ikuti langkah-langkah ini.
- Jalankan
dotnet publish --output $(Build.ArtifactStagingDirectory)menggunakan .NET CLI, atau tambahkan tugas .NET Core (DotNetCoreCLI@2) dengan perintah terbitkan . - Terbitkan artefak dengan menggunakan tugas Terbitkan Artefak Alur (PublishPipelineArtifact@1). Tugas ini mengunggah semua file sebagai
$(Build.ArtifactStagingDirectory)artefak build Anda.
Tambahkan kode berikut ke file azure-pipelines.yml Anda:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsite'
Untuk menyalin lebih banyak file ke direktori build sebelum menerbitkan, gunakan tugas Salin File (CopyFile@2).
Note
Input publishWebProjects dalam tugas .NET Core (DotNetCoreCLI@2) diatur ke true secara default, dan menerbitkan semua proyek web di repositori Anda. Untuk informasi selengkapnya, lihat repositori GitHub azure-pipelines-tasks .
Untuk menerbitkan output build .NET Anda ke alur Anda, lakukan tugas berikut:
- Jalankan
dotnet publish --output $(Build.ArtifactStagingDirectory)menggunakan .NET CLI atau tambahkan tugas .NET Core (DotNetCoreCLI@2) dengan perintah terbitkan . - Terbitkan artefak dengan menggunakan tugas Terbitkan artefak build (PublishBuildArtifacts@1).
Kode azure-pipelines.yml berikut juga menerbitkan artefak build Anda sebagai file ZIP. Tugas mengunggah PublishBuildArtifacts@1 semua file sebagai $(Build.ArtifactStagingDirectory) artefak build Anda.
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: true
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
Untuk informasi selengkapnya, lihat Menerbitkan dan mengunduh artefak build.
Menerbitkan ke umpan NuGet
Untuk membuat paket NuGet dan menerbitkannya ke umpan NuGet Anda, tambahkan cuplikan berikut ke file azure-pipelines.yml Anda:
steps:
# ...
# do this near the end of your pipeline
- script: dotnet pack /p:PackageVersion=$(version) # define the version variable elsewhere in your pipeline
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: '<NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
publishFeedCredentials: '<NuGet service connection>'
versioningScheme: byEnvVar
versionEnvVar: version
Note
Tugas NuGetAuthenticate@1 ini tidak mendukung autentikasi kunci NUGet API. Jika Anda menggunakan kunci NUGet API, gunakan NuGetCommand@2 tugas dengan input yang command diatur ke push dan --api-key argumen . Contohnya, dotnet nuget push --api-key $(NuGetApiKey).
Untuk informasi selengkapnya tentang penerapan versi dan penerbitan paket NuGet, lihat Menerbitkan paket NuGet dengan Azure Pipelines.
Menerbitkan paket NuGet ke Azure Artifacts
Anda dapat menerbitkan paket NuGet ke umpan Azure Artifacts Anda dengan menggunakan tugas NuGetCommand@2 . Untuk informasi selengkapnya, lihat Menerbitkan paket NuGet dengan Azure Pipelines.
Menerbitkan arsip file ZIP ke aplikasi web
Untuk membuat arsip file ZIP yang siap diterbitkan ke aplikasi web, tambahkan cuplikan berikut ke azure-pipelines.yml. Jalankan tugas ini setelah Anda membuat aplikasi, di dekat akhir alur Anda dalam banyak kasus. Misalnya, jalankan tugas ini sebelum Anda menyebarkan ke aplikasi web Azure di Windows.
steps:
# ...
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
Untuk menerbitkan arsip ini ke aplikasi web, lihat Penyebaran Azure Web Apps.
Menerbitkan simbol
Anda dapat menggunakan PublishSymbols@2 tugas untuk menerbitkan simbol ke server simbol Azure Artifacts atau berbagi file. Untuk informasi selengkapnya, lihat Menerbitkan simbol.
Misalnya, untuk menerbitkan simbol ke berbagi file, tambahkan cuplikan berikut ke file azure-pipelines.yml Anda:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\<server>\<shareName>'
Untuk menggunakan editor klasik, tambahkan sumber Indeks dan terbitkan tugas simbol ke alur Anda.
Penyelesaian Masalah
Jika proyek Anda berhasil dibangun di komputer lokal Anda tetapi tidak di Azure Pipelines, jelajahi potensi penyebab dan tindakan korektif berikut.
- Versi prarilis dari .NET Core SDK tidak diinstal pada agen yang dihosting Microsoft, dan meluncurkan versi baru SDK ke semua pusat data Azure Pipelines dapat memakan waktu beberapa minggu. Alih-alih menunggu peluncuran selesai, Anda dapat menggunakan tugas Gunakan .NET Core untuk menginstal versi .NET Core SDK yang Anda inginkan di agen yang dihosting Microsoft.
Versi baru .NET Core SDK atau Visual Studio dapat merusak build, misalnya jika berisi versi atau fitur alat NuGet yang lebih baru. Pastikan versi dan runtime .NET Core SDK pada komputer pengembangan Anda cocok dengan agen alur.
Anda dapat menyertakan
dotnet --versionskrip baris perintah dalam alur Anda untuk mencetak versi .NET Core SDK. Gunakan Alat Penginstal .NET Core untuk menyebarkan versi yang sama pada agen, atau perbarui proyek dan mesin pengembangan Anda ke versi alur .NET Core SDK.Build Anda mungkin gagal sewaktu-waktu karena masalah koneksi saat Anda memulihkan paket dari NuGet.org. NuGet.org mungkin mengalami masalah, atau mungkin ada masalah jaringan antara pusat data Azure dan NuGet.org. Anda dapat menjelajahi apakah menggunakan Artefak Azure dengan sumber hulu untuk menyimpan cache paket meningkatkan keandalan build Anda.
Kredensial alur secara otomatis digunakan untuk menyambungkan ke Azure Artifacts. Kredensial ini biasanya berasal dari akun Project Collection Build Service . Untuk mempelajari selengkapnya tentang menggunakan Artefak Azure untuk menyimpan paket NuGet Anda, lihat Menyambungkan ke umpan Azure Artifact.
Anda mungkin menggunakan beberapa logika di Visual Studio yang tidak dikodekan di alur Anda. Azure Pipelines menjalankan setiap perintah dalam tugas secara berurutan dalam proses baru. Periksa log dari build alur untuk melihat perintah yang tepat yang berjalan dalam build. Untuk menemukan masalah, ulangi perintah yang sama dalam urutan yang sama pada komputer pengembangan Anda.
Jika Anda memiliki solusi campuran yang menyertakan beberapa proyek .NET Core dan beberapa proyek .NET Framework, gunakan tugas NuGet untuk memulihkan paket yang ditentukan dalam file packages.config . Tambahkan tugas MSBuild atau Visual Studio Build untuk membangun proyek .NET Framework.