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:

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 .

  1. Buka jendela terminal.

  2. Buat direktori proyek dan navigasikan ke direktori tersebut.

  3. Buat aplikasi web .NET 8 baru.

    dotnet new webapp -f net8.0
    
  4. Dari sesi terminal yang sama, jalankan aplikasi secara lokal menggunakan dotnet run perintah dari direktori proyek Anda.

    dotnet run
    
  5. Setelah aplikasi dimulai, tekan Ctrl-C untuk mematikannya.

Buat repositori git dan sambungkan ke GitHub

  1. Dari direktori proyek, buat repositori git lokal dan terapkan kode aplikasi ke cabang utama.

  2. Koneksi repositori Git lokal Anda ke repositori GitHub.

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.

  1. Di browser, buka dev.azure.com dan masuk.
  2. Pilih organisasi Anda.
  3. Buat proyek baru dengan memilih Proyek baru atau Buat proyek jika membuat proyek pertama di organisasi.
  4. Masukkan Nama proyek.
  5. Pilih Visibilitas untuk proyek Anda.
  6. Pilih Buat.
  1. Di browser, buka Azure DevOps Server Anda.
  2. Pilih koleksi Anda.
  3. Buat proyek baru dengan memilih Proyek baru atau Buat proyek jika membuat proyek pertama dalam koleksi.
  4. Masukkan Nama proyek.
  5. Pilih Visibilitas untuk proyek Anda.
  6. Pilih Buat.
  1. Di jendela browser, masuk ke Azure DevOps Server Anda dan pilih koleksi Anda.
  2. Pilih Proyek baru.
  3. Masukkan nama proyek.
  4. Secara opsional, masukkan deskripsi.
  5. 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
  1. Masuk ke organisasi Azure DevOps Anda dan buka proyek Anda.

  2. Buka Alur, lalu pilih Alur baru atau Buat alur jika membuat alur pertama Anda.

  3. Lakukan langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.

  4. Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.

  5. Saat Anda melihat daftar repositori, pilih repositori Anda.

  6. Anda mungkin diarahkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika demikian, pilih Setujui & instal.

Konfigurasikan alur Anda
  1. Saat tab Konfigurasi muncul, pilih Perlihatkan lainnya dan pilih templat alur ASP.NET Core dari daftar.

  2. 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
  1. Saat Anda siap, pilih Simpan dan jalankan.

    Tombol Simpan dan jalankan di alur YAML baru

  2. Secara opsional, Anda dapat mengedit pesan penerapan.

  3. Terapkan file azure-pipelines.yml baru ke repositori Anda dengan memilih Simpan dan jalankan.

  4. 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.

  1. Buka proyek Anda dan pilih Alur.
  2. Pilih Buat alur atau Alur baru jika membuat alur pertama untuk proyek ini.
Pilih sumber Anda
  1. Pilih repositori sumber Anda. Untuk contoh ini, gunakan GitHub Enterprise Server.

    1. Masukkan URL untuk akun GitHub Anda. Contohnya,https://github.com/<username>.
    2. Masukkan token akses pribadi Anda untuk akun GitHub Anda.
    3. Masukkan nama koneksi Layanan. Contohnya,my-github.
    4. Pilih Buat.
  2. Pilih repositori GitHub Anda.

Konfigurasikan alur Anda
  1. Pada tab Konfigurasi , pilih Perlihatkan lainnya dan pilih templat alur ASP.NET Core dari daftar.

  2. 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
  1. Pilih Simpan.

    Cuplikan layar memperlihatkan tombol Simpan dan jalankan di alur YAML baru.

  2. Untuk menerapkan file YAML alur ke repositori Anda, edit pesan penerapan sesuai kebutuhan dan pilih Simpan.

  3. Pilih Jalankan untuk menjalankan alur Anda.

Untuk melihat log build saat alur Anda berjalan, pilih nomor build di bagian atas halaman.

  1. Pilih Simpan dan jalankan.

    Cuplikan layar memperlihatkan tombol Simpan dan jalankan di alur YAML baru.

  2. 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 Koneksi ke umpan Artefak Azure.

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 Project Pengaturan.

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:

  1. Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.

  2. Pilih .NET Core dari katalog tugas.

  3. Pilih perintah pemulihan dari daftar dropdown Perintah.

  4. Di bidang Jalur ke proyek, masukkan jalur ke file Anda.csproj.

  5. Pilih Tambahkan.

  6. 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:

  1. Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.

  2. Pilih .NET Core dari katalog tugas.

  3. Pilih perintah build dari daftar dropdown Perintah.

  4. Di bidang Jalur ke proyek, masukkan jalur ke file Anda.csproj.

  5. Pilih Tambahkan.

  6. 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:

  1. Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.

  2. Pilih Baris Perintah dari katalog tugas.

  3. Secara opsional, tambahkan Nama tampilan.

  4. Masukkan dotnet build perintah dengan parameter. Contohnya,dotnet build --configuration $(buildConfiguration).

  5. Masukkan jalur ke .csproj file sebagai direktori kerja.

  6. Pilih Tambahkan.

  7. 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:

  1. Buka posisi dalam file YAML tempat Anda ingin menyisipkan tugas.

  2. Pilih .NET Core dari katalog tugas.

  3. Pilih perintah yang ingin Anda jalankan.

  4. Konfigurasikan opsi apa pun yang diperlukan.

  5. Pilih Tambahkan.

  6. 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:

  1. Tambahkan tugas .NET Core dan atur properti berikut:
    • Perintah: kustom.
      • Jalur ke proyek: biarkan kosong.
    • Perintah kustom: alat.
    • Argumen: install -g dotnetsay.
  2. Untuk menjalankan alat, tambahkan Baris Perintah dan atur properti berikut:
    • Skrip:dotnetsay.

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:

  1. Tambahkan tugas .NET Core ke pekerjaan build Anda dan atur properti berikut:

    1. Perintah: uji.
    2. Jalur ke proyek: Harus merujuk ke proyek pengujian dalam solusi Anda.
    3. Argumen: --configuration $(BuildConfiguration) --collect "Code coverage".
  2. 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:

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?

A: Alat .NET Core CLI

T: Di mana saya dapat mempelajari selengkapnya tentang menjalankan pengujian dalam solusi saya?

A: Pengujian unit dalam proyek .NET Core

T: Di mana saya dapat mempelajari selengkapnya tentang tugas?

A: Membangun dan merilis tugas