Membuat, menguji, dan menerapkan aplikasi .NET Core
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Gunakan Azure Pipeline untuk membuat, menguji, dan menyebarkan proyek .NET Core Anda secara otomatis. Artikel ini memperlihatkan kepada Anda cara melakukan tugas berikut:
- Siapkan lingkungan build Anda dengan agen yang dihost sendiri.
- Pulihkan dependensi, buat proyek Anda, dan uji dengan tugas .NET Core (DotNetCoreCLI@2) atau skrip.
- Uji kode Anda dan gunakan tugas terbitkan cakupan kode untuk menerbitkan hasil cakupan kode.
- Paketkan dan kirimkan output build Anda ke:
- alur Anda.
- umpan NuGet.
.zip
file untuk menyebarkan aplikasi web ke Azure.
- 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.
- Uji kode Anda dan gunakan tugas terbitkan cakupan kode untuk menerbitkan hasil cakupan kode.
- Paketkan dan kirimkan output build Anda ke:
- alur Anda.
- umpan NuGet.
.zip
file untuk menyebarkan aplikasi web ke Azure.
Catatan
Untuk bantuan terkait proyek .NET Framework, lihat Membangun aplikasi ASP.NET dengan .NET Framework.
Prasyarat
- Akun GitHub tempat Anda dapat membuat repositori. Buat akun gratis.
- Organisasi dan proyek Azure DevOps. Buat akun gratis.
- Kemampuan untuk menjalankan jaringan alur pada agen yang dihosting Microsoft. Anda dapat membeli pekerjaan paralel atau Anda dapat meminta tingkat gratis.
- Akun GitHub tempat Anda dapat membuat repositori. Buat akun gratis.
- Koleksi Azure DevOps.
- Kemampuan untuk menjalankan alur pada agen yang dihost sendiri dengan Docker diinstal dan berjalan pada host agen.
Membuat alur pertama Anda
Apakah Anda baru menggunakan Azure Pipelines? Jika demikian, kami sarankan Anda mencoba bagian berikut terlebih dahulu.
Membuat proyek .NET
Jika Anda tidak memiliki proyek .NET untuk dikerjakan, buat proyek baru di sistem lokal Anda. Mulailah dengan menginstal .NET 8.0 SDK terbaru .
Buka jendela terminal.
Buat direktori proyek dan navigasikan ke direktori tersebut.
Buat aplikasi web .NET 8 baru.
dotnet new webapp -f net8.0
Dari sesi terminal yang sama, jalankan aplikasi secara lokal menggunakan
dotnet run
perintah dari direktori proyek Anda.dotnet run
Setelah aplikasi dimulai, tekan Ctrl-C untuk mematikannya.
Buat repositori git dan sambungkan ke GitHub
Dari direktori proyek, buat repositori git lokal dan terapkan kode aplikasi ke cabang utama.
Membuat proyek Azure DevOps
Masuk ke Azure Pipelines. Setelah Anda masuk, browser Anda masuk ke https://dev.azure.com/my-organization-name
dan menampilkan dasbor Azure DevOps Anda.
- Di browser, buka dev.azure.com dan masuk.
- Pilih organisasi Anda.
- Buat proyek baru dengan memilih Proyek baru atau Buat proyek jika membuat proyek pertama di organisasi.
- Masukkan Nama proyek.
- Pilih Visibilitas untuk proyek Anda.
- Pilih Buat.
- Di browser, buka Azure DevOps Server Anda.
- Pilih koleksi Anda.
- Buat proyek baru dengan memilih Proyek baru atau Buat proyek jika membuat proyek pertama dalam koleksi.
- Masukkan Nama proyek.
- Pilih Visibilitas untuk proyek Anda.
- Pilih Buat.
- Di jendela browser, masuk ke Azure DevOps Server Anda dan pilih koleksi Anda.
- Pilih Proyek baru.
- Masukkan nama proyek.
- Secara opsional, masukkan deskripsi.
- Pilih Buat.
Menyiapkan lingkungan build Anda
Build Anda berjalan pada agen yang dihost sendiri. Pastikan Anda memiliki versi .NET Core SDK dan runtime yang diperlukan yang diinstal pada agen. Anda dapat membangun proyek .NET Core Anda dengan menggunakan .NET Core SDK dan runtime di Windows, Linux, macOS, dan Docker.
Anda dapat menginstal versi .NET SDK tertentu dengan menambahkan tugas UseDotNet@2 dalam file YAML alur Anda atau menambahkan tugas ke alur Anda menggunakan editor klasik.
Contoh cuplikan YAML:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
Build Anda berjalan pada agen yang dihosting Microsoft. Anda dapat membangun proyek .NET Core Anda dengan menggunakan .NET Core SDK dan runtime di Windows, Linux, dan macOS.
Atau, Anda dapat menggunakan agen yang dihost sendiri. Dengan agen yang dihost sendiri, Anda dapat menggunakan pratinjau atau SDK privat yang tidak didukung secara resmi oleh Azure DevOps Services dan menjalankan build bertambah bertahap.
Membangun alur Anda
Anda dapat menggunakan editor alur YAML atau editor klasik untuk membuat alur Anda. Untuk menggunakan editor klasik, pilih Gunakan editor klasik.
Buat alur baru dan pilih sumber Anda
Masuk ke organisasi Azure DevOps Anda dan buka proyek Anda.
Buka Alur, lalu pilih Alur baru atau Buat alur jika membuat alur pertama Anda.
Lakukan langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.
Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.
Saat Anda melihat daftar repositori, pilih repositori Anda.
Anda mungkin diarahkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika demikian, pilih Setujui & instal.
Konfigurasikan alur Anda
Saat tab Konfigurasi muncul, pilih Perlihatkan lainnya dan pilih templat alur ASP.NET Core dari daftar.
Periksa alur baru Anda untuk melihat apa yang dilakukan YAML.
Anda dapat menyesuaikan file YAML untuk kebutuhan Anda. Misalnya, Anda dapat menentukan kumpulan agen atau menambahkan tugas untuk menginstal .NET SDK yang berbeda.
Menyimpan dan menjalankan alur Anda
Saat Anda siap, pilih Simpan dan jalankan.
Secara opsional, Anda dapat mengedit pesan penerapan.
Terapkan file azure-pipelines.yml baru ke repositori Anda dengan memilih Simpan dan jalankan.
Untuk menonton alur Anda beraksi, pilih pekerjaan di bagian Pekerjaan .
Membuat dan menjalankan alur Anda
Anda dapat membuat alur dengan menggunakan editor alur YAML atau editor klasik.
- Buka proyek Anda dan pilih Alur.
- Pilih Buat alur atau Alur baru jika membuat alur pertama untuk proyek ini.
Pilih sumber Anda
Pilih repositori sumber Anda. Untuk contoh ini, gunakan GitHub Enterprise Server.
- Masukkan URL untuk akun GitHub Anda. Contohnya,
https://github.com/<username>
. - Masukkan token akses pribadi Anda untuk akun GitHub Anda.
- Masukkan nama koneksi Layanan. Contohnya,
my-github
. - Pilih Buat.
- Masukkan URL untuk akun GitHub Anda. Contohnya,
Pilih repositori GitHub Anda.
Konfigurasikan alur Anda
Pada tab Konfigurasi , pilih Perlihatkan lainnya dan pilih templat alur ASP.NET Core dari daftar.
Periksa alur baru Anda untuk melihat apa yang dilakukan YAML.
Anda dapat menyesuaikan file YAML untuk kebutuhan Anda. Misalnya, Anda dapat menambahkan tugas untuk menginstal .NET SDK atau untuk menguji dan menerbitkan proyek Anda.
Menyimpan dan menjalankan alur Anda
Pilih Simpan.
Untuk menerapkan file YAML alur ke repositori Anda, edit pesan penerapan sesuai kebutuhan dan pilih Simpan.
Pilih Jalankan untuk menjalankan alur Anda.
Untuk melihat log build saat alur Anda berjalan, pilih nomor build di bagian atas halaman.
Pilih Simpan dan jalankan.
Untuk menerapkan file azure-pipelines.yml baru ke repositori Anda, edit pesan penerapan sesuai kebutuhan dan pilih Simpan dan jalankan.
Untuk menonton alur Anda beraksi, pilih pekerjaan di bagian Pekerjaan .
Anda sekarang memiliki alur kerja yang siap untuk Anda sesuaikan! Baca lebih lanjut untuk mempelajari beberapa cara umum untuk menyesuaikan alur Anda.
Membangun lingkungan
Azure Pipelines menggunakan agen yang dihost sendiri untuk membangun proyek .NET Core Anda. Pastikan Anda memiliki versi .NET Core SDK dan runtime yang diperlukan yang diinstal pada agen. Anda dapat membangun proyek .NET Core Anda dengan menggunakan .NET Core SDK dan runtime di Windows, Linux, macOS, dan Docker.
Misalnya, untuk memilih kemampuan kumpulan dan agen dalam file YAML alur:
Anda dapat memilih kumpulan agen dan agen untuk pekerjaan build Anda. Agen ditentukan berdasarkan kemampuannya.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
Anda dapat menginstal versi .NET SDK tertentu dengan menambahkan tugas UseDotNet@2 di alur Anda. Perlu diingat bahwa untuk agen yang berjalan pada sistem fisik, menginstal SDK dan alat melalui alur Anda mengubah lingkungan build pada host agen.
Untuk menginstal SDK yang lebih baru, atur performMultiLevelLookup
ke true
dalam cuplikan berikut:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Anda dapat menggunakan Azure Pipelines untuk membangun proyek .NET Core Anda di Windows, Linux, atau macOS tanpa perlu menyiapkan infrastruktur.
Misalnya, Ubuntu diatur di sini dalam file YAML alur.
pool:
vmImage: 'ubuntu-latest'
Lihat Agen yang dihosting Microsoft untuk daftar lengkap gambar dan contoh konfigurasi lebih lanjut.
Agen yang dihosting Microsoft di Azure Pipelines menyertakan beberapa versi SDK .NET Core yang didukung sebelumnya. Agen yang dihosting Microsoft tidak menyertakan beberapa versi lama .NET Core SDK. Mereka juga biasanya tidak menyertakan versi prarilis. Jika Anda memerlukan versi SDK ini di agen yang dihosting Microsoft, instal menggunakan tugas UseDotNet@2 .
Misalnya, untuk menginstal 5.0.x SDK, tambahkan cuplikan berikut:
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
dalam cuplikan berikut:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Tip
Untuk menghemat biaya menjalankan alat penginstal, Anda dapat mengatur agen yang dihost sendiri Linux, macOS, atau Windows. Anda juga dapat menggunakan agen yang dihost sendiri untuk menghemat waktu tambahan jika Anda memiliki repositori besar atau Anda menjalankan build bertambah bertahas. Agen yang dihost sendiri juga dapat membantu Anda dalam menggunakan pratinjau atau SDK privat yang tidak didukung secara resmi oleh Azure DevOps atau hanya tersedia di lingkungan perusahaan atau lokal Anda.
Memulihkan dependensi
NuGet adalah cara populer untuk bergantung pada kode yang tidak Anda bangun. Anda dapat mengunduh paket NuGet dan alat khusus proyek yang ditentukan dalam file proyek dengan menjalankan dotnet restore
perintah baik melalui tugas .NET Core atau langsung dalam skrip di alur Anda. Untuk informasi selengkapnya, lihat tugas .NET Core (DotNetCoreCLI@2).
Anda dapat mengunduh paket NuGet dari Azure Artifacts, NuGet.org, atau beberapa repositori NuGet eksternal atau internal lainnya. Tugas .NET Core sangat berguna untuk memulihkan paket dari umpan NuGet yang diautentikasi. Jika umpan Anda berada dalam proyek yang sama dengan alur Anda, Anda tidak perlu mengautentikasi.
Alur ini menggunakan umpan Azure Artifact untuk dotnet restore
dalam tugas DotNetCoreCLI@2 .
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)'
Perintah dotnet restore
menggunakan paket NuGet.exe
dengan .NET Core SDK dan hanya dapat memulihkan paket yang ditentukan dalam file proyek .csproj
.NET Core.
Jika Anda juga memiliki proyek Microsoft .NET Framework dalam solusi Anda atau menggunakan package.json
untuk menentukan dependensi Anda, gunakan tugas NuGet untuk memulihkan dependensi tersebut.
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
Di .NET Core SDK versi 2.0 dan yang lebih baru, paket dipulihkan secara otomatis saat menjalankan perintah seperti dotnet build
. Namun, Anda masih perlu menggunakan tugas .NET Core untuk memulihkan paket jika Anda menggunakan umpan terautentikasi.
Build Anda dapat gagal karena masalah koneksi saat Anda memulihkan paket dari NuGet.org. Anda dapat menggunakan Artefak Azure dengan sumber upstram untuk menyimpan paket. Kredensial alur secara otomatis digunakan saat tersambung 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.
Untuk menentukan repositori NuGet, masukkan URL ke dalam NuGet.config
file di repositori Anda. Jika umpan Anda diautentikasi, kelola kredensialnya dengan membuat koneksi layanan NuGet di tab Layanan di bawah Pengaturan Proyek.
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 menguranginya, Anda dapat menggunakan Azure Artifacts atau agen yang dihost sendiri dengan manfaat menggunakan cache paket.
Untuk informasi selengkapnya tentang koneksi layanan NuGet, lihat menerbitkan ke umpan NuGet.
Memulihkan paket dari umpan eksternal
Lakukan hal berikut untuk memulihkan paket dari umpan eksternal.
Anda dapat menambahkan perintah pemulihan ke alur Anda menggunakan editor alur YAML dengan langsung menyisipkan cuplikan berikut ke dalam file Anda azure-pipelines.yml
atau menggunakan asisten tugas untuk menambahkan tugas .NET Core .
# do this before your build tasks
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: config
nugetConfigPath: NuGet.config # Relative to root of the repository
externalFeedCredentials: <Name of the NuGet service connection>
<Ganti tempat penampung> dengan nama koneksi layanan Anda.
Untuk menggunakan asisten tugas:
Untuk menambahkan tugas build menggunakan asisten tugas, lakukan langkah-langkah berikut:
Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
Pilih .NET Core dari katalog tugas.
Pilih perintah pemulihan dari daftar dropdown Perintah.
Di bidang Jalur ke proyek, masukkan jalur ke file Anda
.csproj
.Pilih Tambahkan.
Pilih Simpan untuk menerapkan perubahan.
Catatan
Pastikan umpan kustom ditentukan dalam file Anda NuGet.config
dan kredensial ditentukan dalam koneksi layanan NuGet.
Bangun proyek Anda
Bangun proyek .NET Core Anda dengan menjalankan dotnet build
perintah . Anda dapat menambahkan perintah ke alur Anda sebagai skrip baris perintah atau dengan menggunakan tugas .NET Core.
Build .NET Core menggunakan tugas .NET Core
Contoh YAML untuk membangun menggunakan tugas DotNetCoreCLI@2:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your needs
Anda dapat menambahkan tugas build menggunakan editor alur YAML dengan langsung mengedit file atau menambahkan tugas .NET Core menggunakan asisten tugas.
Untuk menambahkan tugas build menggunakan asisten tugas, lakukan langkah-langkah berikut:
Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
Pilih .NET Core dari katalog tugas.
Pilih perintah build dari daftar dropdown Perintah.
Di bidang Jalur ke proyek, masukkan jalur ke file Anda
.csproj
.Pilih Tambahkan.
Pilih Simpan untuk menerapkan perubahan.
Build .NET Core menggunakan skrip baris perintah
Contoh YAML untuk membangun menggunakan dotnet build
sebagai skrip:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
Anda dapat menambahkan tugas build menggunakan editor alur YAML dengan langsung mengedit file atau menambahkan tugas Baris Perintah.
Gunakan langkah-langkah berikut untuk menambahkan tugas Baris Perintah:
Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.
Pilih Baris Perintah dari katalog tugas.
Secara opsional, tambahkan Nama tampilan.
Masukkan
dotnet build
perintah dengan parameter. Contohnya,dotnet build --configuration $(buildConfiguration)
.Masukkan jalur ke
.csproj
file sebagai direktori kerja.Pilih Tambahkan.
Pilih Simpan untuk menerapkan perubahan.
Menambahkan perintah .NET SDK ke alur Anda
Anda dapat menambahkan perintah .NET SDK ke proyek Anda sebagai skrip atau menggunakan tugas .NET Core. Tugas .NET Core (DotNetCoreCLI@2) memungkinkan Anda untuk dengan mudah menambahkan perintah CLI dotnet ke alur Anda. Anda dapat menambahkan tugas .NET Core dengan mengedit file YAML Anda atau menggunakan editor klasik.
Menambahkan perintah .NET CLI menggunakan tugas .NET Core
Untuk menambahkan perintah .NET Core CLI menggunakan 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.
Konfigurasikan opsi apa pun yang diperlukan.
Pilih Tambahkan.
Pilih Simpan untuk menerapkan perubahan.
Menambahkan perintah .NET Core CLI menggunakan skrip
Anda dapat menambahkan perintah .NET Core CLI sebagai dalam script
file Anda azure-pipelines.yml
.
Contoh:
steps:
# ...
- script: dotnet test <test-project>
Menginstal alat
Untuk menginstal alat global .NET Core seperti dotnetsay dalam build Anda yang berjalan di Windows, lakukan langkah-langkah berikut:
- Tambahkan tugas .NET Core dan atur properti berikut:
- Perintah: kustom.
- Jalur ke proyek: biarkan kosong.
- Perintah kustom: alat.
- Argumen:
install -g dotnetsay
.
- Perintah: kustom.
- Untuk menjalankan alat, tambahkan Baris Perintah dan atur properti berikut:
- Skrip:
dotnetsay
.
- Skrip:
Jalankan pengujian Anda
Ketika Anda memiliki proyek pengujian di repositori, Anda dapat menggunakan tugas .NET Core 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. Hasil ini tersedia untuk Anda dalam ringkasan build dan dapat digunakan untuk memecahkan masalah pengujian yang gagal dan analisis waktu pengujian.
Anda dapat menambahkan tugas pengujian ke alur Anda menggunakan tugas DotNetCoreCLI@2 atau menambahkan cuplikan berikut ke file Anda azure-pipelines.yml
:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Saat menggunakan editor tugas .NET Core , atur Perintah untuk menguji dan Jalur ke proyek harus merujuk ke proyek pengujian dalam solusi Anda.
Atau, Anda dapat menjalankan dotnet test
perintah dengan pencatat tertentu lalu menggunakan tugas Terbitkan Hasil Pengujian:
steps:
# ...
# do this after your tests have 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, metrik cakupan kode dapat dikumpulkan 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 untuk menjalankan pengujian, data cakupan secara otomatis diterbitkan ke server. File .coverage
dapat diunduh dari ringkasan build untuk dilihat di Visual Studio.
Tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
Untuk menambahkan tugas .NET Core melalui editor tugas:
Tambahkan tugas .NET Core ke pekerjaan build Anda dan atur properti berikut:
- Perintah: uji.
- Jalur ke proyek: Harus merujuk ke proyek pengujian dalam solusi Anda.
- Argumen:
--configuration $(BuildConfiguration) --collect "Code coverage"
.
Pastikan bahwa opsi Terbitkan hasil pengujian tetap dipilih.
Jika Anda memilih untuk menjalankan dotnet test
perintah, tentukan opsi pencatat hasil pengujian dan cakupan. Kemudian gunakan tugas Terbitkan Hasil Pengujian:
steps:
# ...
# do this after your tests have 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@1). Alat cakupan harus dikonfigurasi untuk menghasilkan hasil dalam format cakupan Cobertura atau JaCoCo.
Untuk menjalankan pengujian dan menerbitkan cakupan kode dengan Coverlet, lakukan tugas berikut:
Tambahkan referensi ke
coverlet.collector
paket NuGet.Tambahkan cuplikan berikut ke file Anda
azure-pipelines.yml
:- task: UseDotNet@2 inputs: version: '8.x' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 displayName: 'dotnet build' inputs: command: 'build' configuration: $(buildConfiguration) - 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: 'MyTestLibrary' # update with your test project directory - task: PublishCodeCoverageResults@1 displayName: 'Publish code coverage report' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Mengemas dan mengirimkan kode Anda
Anda dapat menerbitkan artefak build dengan:
- Menerbitkan ke Azure Pipelines.
- Menerbitkan paket ke Azure Artifacts.
- Membuat paket NuGet dan menerbitkan ke umpan NuGet Anda.
- Membuat arsip .zip untuk menyebarkan aplikasi web Anda.
Menerbitkan artefak ke Azure Pipelines
Untuk menerbitkan output build .NET Anda ke alur Anda, lakukan tugas berikut:
- Jalankan
dotnet publish --output $(Build.ArtifactStagingDirectory)
pada .NET CLI atau tambahkan tugas DotNetCoreCLI@2 dengan perintah terbitkan. - Terbitkan artefak dengan menggunakan tugas Terbitkan Artefak Alur.
Tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsite'
Catatan
Tugas DotNetCoreCLI@2 memiliki publishWebProjects
input yang diatur ke true secara default. Tugas ini menerbitkan semua proyek web di repositori Anda secara default. Anda dapat menemukan bantuan dan informasi selengkapnya dalam tugas sumber terbuka di GitHub.
Untuk menyalin lebih banyak file ke direktori build sebelum menerbitkan, gunakan tugas Salin File (CopyFile@2).
Untuk menerbitkan output build .NET Anda ke alur Anda, lakukan tugas berikut:
- Jalankan
dotnet publish --output $(Build.ArtifactStagingDirectory)
di CLI atau tambahkan tugas DotNetCoreCLI@2 dengan perintah terbitkan. - Terbitkan artefak dengan menggunakan tugas Terbitkan artefak build (PublishBuildArtifacts@1).
Tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
untuk menerbitkan artefak build Anda sebagai file .zip:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- 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:
steps:
# ...
# do this near the end of your pipeline in most cases
- script: dotnet pack /p:PackageVersion=$(version) # define version variable elsewhere in your pipeline
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
publishFeedCredentials: '<Name of the NuGet service connection>'
versioningScheme: byEnvVar
versionEnvVar: version
Catatan
Tugas NuGetAuthenticate@1 tidak mendukung autentikasi kunci NUGet API. Jika Anda menggunakan kunci NUGet API, gunakan tugas NuGetCommand@2 dengan input yang command
diatur ke push
dengan argumen --api-key . Contohnya,dotnet nuget push --api-key $(NuGetApiKey)
.
Untuk informasi selengkapnya tentang penerapan versi dan penerbitan paket NuGet, lihat menerbitkan ke umpan NuGet.
Menerbitkan paket NuGet ke Azure Artifacts
Anda dapat menerbitkan paket NuGet ke umpan Azure Artifacts anda dengan menggunakan NuGetCommand@2 untuk mendorong ke umpan Azure Artifact Anda. Misalnya, lihat Menerbitkan paket NuGet dengan Azure Pipelines.
Sebarkan aplikasi web
Untuk membuat arsip file .zip yang siap diterbitkan ke aplikasi web, tambahkan cuplikan berikut:
steps:
# ...
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- 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.
Membangun gambar dan mendorong ke registri kontainer
Anda juga dapat membuat gambar untuk aplikasi dan mendorongnya ke registri kontainer.
Menerbitkan simbol
Anda dapat menggunakan tugas PublishSymbols@2 untuk menerbitkan simbol ke server simbol Azure Artifacts atau berbagi file.
Misalnya, untuk menerbitkan simbol ke berbagi file, tambahkan cuplikan berikut ke file Anda azure-pipelines.yml
:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\server\shareName'
Saat menggunakan editor klasik, pilih Indeks sumber menerbitkan simbol dari katalog tugas untuk ditambahkan ke alur Anda.
Untuk informasi selengkapnya, lihat Menerbitkan simbol.
Pecahkan masalah
Jika Anda dapat membangun proyek di komputer pengembangan, tetapi Anda mengalami masalah dalam membangunnya di Azure Pipelines, jelajahi potensi penyebab dan tindakan korektif berikut:
- Versi prarilis dari .NET Core SDK tidak diinstal pada agen yang dihosting Microsoft. Setelah versi baru .NET Core SDK dirilis, diperlukan waktu beberapa minggu untuk diluncurkan ke semua pusat data Azure Pipelines. Anda tidak perlu menunggu peluncuran ini selesai. Anda dapat menggunakan tugas Gunakan .NET Core untuk menginstal versi .NET Core SDK yang Anda inginkan di agen yang dihosting Microsoft.
Periksa versi .NET Core SDK dan runtime pada komputer pengembangan Anda dan pastikan mereka cocok dengan agen. Anda dapat menyertakan skrip
dotnet --version
baris perintah dalam alur Anda untuk mencetak versi .NET Core SDK. Gunakan Penginstal Alat .NET Core untuk menyebarkan versi yang sama pada agen, atau perbarui proyek dan komputer pengembangan Anda ke versi .NET Core SDK yang lebih baru.Anda mungkin menggunakan beberapa logika di Ide Visual Studio yang tidak dikodekan di alur Anda. Azure Pipelines menjalankan setiap perintah yang Anda tentukan dalam tugas satu demi satu dalam proses baru. Periksa log dari build alur untuk melihat perintah yang tepat yang berjalan sebagai bagian dari build. Ulangi perintah yang sama dalam urutan yang sama pada komputer pengembangan Anda untuk menemukan masalah.
Jika Anda memiliki solusi campuran yang menyertakan beberapa proyek .NET Core dan beberapa proyek .NET Framework, Anda juga harus menggunakan tugas NuGet untuk memulihkan paket yang ditentukan dalam
packages.config
file. Tambahkan tugas MSBuild atau Visual Studio Build untuk membangun proyek .NET Framework.Build Anda mungkin gagal sewaktu-waktu saat memulihkan paket: baik NuGet.org mengalami masalah atau ada masalah jaringan antara pusat data Azure dan NuGet.org. Anda dapat menjelajahi apakah menggunakan Artefak Azure dengan NuGet.org sebagai sumber hulu meningkatkan keandalan build Anda, karena tidak berada dalam kontrol kami.
Terkadang, versi baru .NET Core SDK atau Visual Studio diluncurkan, build Anda mungkin rusak. Misalnya, versi atau fitur alat NuGet yang lebih baru dikirim dengan SDK dapat merusak build Anda. Untuk mengisolasi masalah ini, gunakan tugas .NET Core Tool Installer untuk menentukan versi .NET Core SDK yang digunakan dalam build Anda.
FAQ
T: Di mana saya dapat mempelajari selengkapnya tentang Azure Artifacts?
A: Manajemen Paket di Artefak Azure
T: Di mana saya dapat mempelajari selengkapnya tentang perintah .NET Core?
T: Di mana saya dapat mempelajari selengkapnya tentang menjalankan pengujian dalam solusi saya?
A: Pengujian unit dalam proyek .NET Core