Alıştırma - Paketiniz için işlem hattı oluşturma

Tamamlandı

Burada ekibin Tailspin.SpaceGame.Web.Models projesi için tailspin.spacegame.web projesinden ayrı olan yeni kodunu alacaksınız. Models projesi için bir Azure Pipelines projesi oluşturup Azure Artifacts’teki yapıtı 1.0.0 sürüm numarasıyla akışınızda göreceksiniz.

Projede hangi değişiklikler yapıldı?

Space Game web sitesinin bir ASP.NET Core uygulaması olduğunu hatırlayın. Verileri kullanıcı arabiriminde görüntülenen verilerden ayırmak için Model-View-Controller (MVC) desenini kullanır. Andy ve Mara, birden fazla projenin model sınıflarını kullanabilmesi için bu sınıfları ayrı bir kitaplığa taşımak istiyor.

Bunu yapmak için yalnızca model sınıflarını içeren Tailspin.SpaceGame.Web.Models adlı yeni bir C# projesi oluştururlar. Aynı zamanda, model sınıflarını mevcut projeleri olan Tailspin.SpaceGame.Web’den kaldırıyorlar. Mevcut projelerindeki model sınıflarını, Tailspin.SpaceGame.Web.Models projesinin bir başvurusu ile değiştiriyorlar.

Andy ve Mara, bu projeleri oluşturmak için iki işlem hattı kullanır (her proje için bir işlem hattı). İlk proje ve bununla ilişkili Azure Pipelines yapılandırması zaten sizde var. Burada GitHub'da ikinci projenin çatalını oluşturacak ve bunu oluşturmak için bir Azure Pipelines yapılandırması oluşturacaksınız. Sonuçta elde edilen paketi Azure Artifacts'e yayımlayacaksınız.

Visual Studio Code’u hazırlama

Daha önce, Tailspin.SpaceGame.Web projesiyle çalışmak için Visual Studio Code'u ayarlamıştınız. Burada, Tailspin.SpaceGame.Web.Models projesiyle çalışabilmek için Visual Studio Code'un ikinci bir örneğini açacaksınız.

  1. Visual Studio Code'un ikinci bir örneğini açın.

  2. Visual Studio Code'da tümleşik terminali açın.

  3. mslearn-tailspin-spacegame-web projenizin bulunduğu üst dizine gidin. Giriş dizininize taşınan bir örnek aşağıda verilmişti:

    cd ~
    

Kaynak kodunu alma

GitHub'dan Tailspin.SpaceGame.Web.Models projesinin kaynak kodunu alın ve dosyalarla çalışabilmeniz için Visual Studio Code'u ayarlayın.

Çatal oluşturma

İlk adım, kaynak dosyalarıyla çalışıp bunları değiştirmek için mslearn-tailspin-spacegame-web-models deposunu çatallamadır. Mara’nın Models dizinini yeni bir projeye yerleştirdiğini ve bunu web projesinden kaldırdığını hatırlayın.

mslearn-tailspin-spacegame-web-models projesini GitHub hesabınıza çatallamak için:

  1. Web tarayıcısından GitHub'a gidin ve oturum açın.
  2. mslearn-tailspin-spacegame-web-models projesine gidin.
  3. Çatal'ı seçin.
  4. Depoyu hesabınıza çatal olarak eklemek için yönergeleri izleyin.

Çatalınızı yerel olarak kopyalama

mslearn-tailspin-spacegame-web-models projelerini bilgisayarınıza kopyalamak için:

  1. GitHub'da mslearn-tailspin-spacegame-web-models projesinin çatalına gidin.

  2. Kod’u seçin. Ardından, HTTPS sekmesinde, URL'yi panonuza kopyalamak için gösterilen URL'nin yanındaki düğmeyi seçin.

    Screenshot showing the URL and copy button from the GitHub repository.

  3. Visual Studio Code'dan terminal penceresine gidin ve bu git clone komutu çalıştırın. Gösterilen URL’yi panonuzun içerikleri ile değiştirin.

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
    
  4. mslearn-tailspin-spacegame-web-models dizinine gidin. Bu, deponuzun kök dizinidir.

    cd mslearn-tailspin-spacegame-web-models
    

Projeyi açma ve yapılandırmayı inceleme

Visual Studio Code'da terminal pencereniz mslearn-tailspin-spacegame-web-models projesinin kök dizinini gösterir. Yapısını görüntüleyebilmeniz ve dosyalarla çalışabilmeniz için projeyi dosya gezgininden açın.

  1. Projeyi açmanın en kolay yolu Visual Studio Code'un geçerli dizinde yeniden açılmasıdır. Bunu yapmak için, tümleşik terminalden aşağıdaki komutu çalıştırın:

    code -r .
    

    Dizini ve dosya ağacını dosya gezgininde görürsünüz.

  2. Tümleşik terminali yeniden açın. Terminal sizi web projenizin köküne yerleştirir.

  3. azure-pipelines.yml dosyasını açın.

    Paketin derlendiği, sürümün ayarlandığı ve paketin Azure Artifacts’e eklendiği adımları görürsünüz.

    Bu DotNetCoreCLI@2 görevi projeyi derler:

    - task: DotNetCoreCLI@2
      displayName: 'Build the project - $(buildConfiguration)'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration $(buildConfiguration)'
        projects: '**/*.csproj'
    

    Bu DotNetCoreCLI@2 görevi, sürümü 1.0.0 olacak şekilde projeyi paketler:

    - task: DotNetCoreCLI@2
      displayName: 'Pack the project - $(buildConfiguration)'
      inputs:
        command: 'pack'
        projects: '**/*.csproj'
        arguments: '--no-build --configuration $(buildConfiguration)'
        versioningScheme: byPrereleaseNumber
        majorVersion: '1'
        minorVersion: '0'
        patchVersion: '0'
    

    Paket geliştirilirken byPrereleaseNumber sürüm oluşturma düzeni yaygın olarak kullanılır. Bu, sürüm numarasının sonuna "-CI-20190621-042647" gibi benzersiz bir yayın öncesi son eki ekler. Bu örneği izlersek, tam sürüm numarası "1.0.0-CI-20190621-042647" olur.

    Bu NuGetCommand@2 görevi, paketi Tailspin.SpaceGame.Web.Models Azure Artifacts akışınıza gönderir:

    - task: NuGetCommand@2
      displayName: 'Publish NuGet package'
      inputs:
        command: push
        feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models'
        allowPackageConflicts: true
      condition: succeeded()
    

    feedPublish yayımlayacak akışın adını belirtir. Adın biçimi şu şekildedir <projectName>/<feedName>:

    • $(System.TeamProject) projenizin adına başvuran önceden tanımlanmış bir değişkendir; örneğin, "Space Game - web - Bağımlılıklar".
    • Tailspin.SpaceGame.Web.Models , önceki alıştırmada sağladığınız akış adıdır.

İzinleri ayarlama

İşlem hattınızı ayarlayıp çalıştırabilmeniz için önce Derleme hizmetine doğru izinleri vermeniz gerekir.

  1. Azure DevOps'ta projenize gidin.
  2. Soldaki menüden Yapıtlar'ı seçin.
  3. Ekranın sağ üst kısmındaki Ayarlar simgesini ve ardından İzinler sekmesini seçin.
  4. Kullanıcı/grup ekle düğmesini seçin.
  5. Kullanıcılar/Gruplar alanına Space Game - web - Dependencies Build Service yazın, Katkıda Bulunan rolünü seçin ve Kaydet'i seçin.

İşlem hattını Azure Pipelines’ta oluşturma

Önceki bir modülde, Azure Pipelines’ı ayarlamayı öğrendiniz. Yenileyiciye ihtiyacınız varsa Azure Pipelines ile derleme işlem hattı oluşturma bölümüne gidin.

Paketi derlemek için ikinci bir işlem hattı ayarlama ve bu paketi Azure Artifacts'e yükleme burada anlatmaktadır.

  1. Azure DevOps'tan Space Game - web - Dependencies projesine gidin.

  2. Soldaki menüden İşlem hatları'nı seçin.

  3. Yeni İşlem Hattı’nı seçin.

  4. Bağlan sekmesinden GitHub’ı seçin.

  5. Seç sekmesinde mslearn-tailspin-spacegame-web-models öğesini seçin.

    İstenirse GitHub kimlik bilgilerinizi girin. Görüntülenen sayfadan en alta kaydırın ve Onayla ve yükle'yi seçin.

  6. Gözden Geçir sekmesinde yeni işlem hattının azure-pipelines.yml dosyasını görürsünüz.

  7. Çalıştır seçin.

  8. İşlem hattı çalıştırmasını izleyin.

  9. Yapıtlar sekmesine gidin.

  10. Üstteki açılan listeden Tailspin.SpaceGame.Web.Models öğesini seçin.

    A screenshot showing the location of the package from the dropdown.

    Sonuç olarak oluşan paketi (Tailspin.SpaceGame.Web.Models) Azure Artifacts’te görürsünüz.

    A screenshot of the package in Azure Artifacts, showing version 1.0 of the package.

  11. Ayrıntılar sayfasına gitmek için paketi seçin. Ardından, sürüm numarasını daha sonra kolayca erişebileceğiniz bir konuma kopyalayın.

    A screenshot of Azure Artifacts showing package details. Highlighted is the version number for the package.

    Sonraki ünitede bu sürüm numarasını kullanacaksınız.