Alıştırma - İşlem hattını oluşturma
Bu noktada Mara, Space Game web sitesi için bir derleme yapılandırması tanımlamıştır. Şimdi sıra senin. bir işlem hattı oluşturacak ve ilk derleme yapıtınızı oluşturacaksınız.
Gördüğünüz gibi Mara, derlemeyi tanımlamak için bir YAML dosyası kullandı. İşlem hattı oluşturduğunuzda işlem sizden YAML dosyanızı ister. Projede henüz bu dosya yok.
Projeniz için ilk YAML dosyasını sağlamadığınızda Azure Pipelines, uygulama türünüz temelinde sizin için bir yaml dosyası oluşturabilir. Burada bir ASP.NET Core uygulaması oluşturacaksınız, ancak Azure Pipelines Java, Go ve daha fazlası gibi diğer proje türleri için başlangıç derleme yapılandırmaları da sağlar.
İşlem hattını oluşturma
Azure DevOps'ta projenize gidin.
Proje sayfasından veya sol bölmeden İşlem Hatları'nı seçin.
İşlem Hattı Oluştur'u (veya projedeki ilk işlem hattı değilse Yeni işlem hattı)'ı seçin.
Bağlan sekmesinde GitHub'ı seçin.
İstendiğinde GitHub kimlik bilgilerinizi girin.
Seç sekmesinde mslearn-tailspin-spacegame-web deponuzu seçin.
Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilebilirsiniz. Öyleyse, en alta kaydırın ve Onayla ve Yükle'yi seçin.
Yapılandır sekmesinde ASP.NET Çekirdek'i seçin.
Dekont
Bu seçeneği görmüyorsanız Daha fazla göster'i seçin. ASP.NET Core (.NET Framework) öğesini seçmeyin.
Gözden Geçir sekmesinde ilk derleme yapılandırmasını not edin.
Bu, Azure DevOps'un uygulama türünüz (ASP.NET Core) temelinde sizin için sağladığı çok temel bir yapılandırmadır. Varsayılan yapılandırma, Microsoft tarafından barındırılan bir aracı kullanır.
Metni
vmImage: ubuntu-latest
(name: Default
veya Codespaces Deposu gizli dizilerini ayarlarken farklı bir havuz belirttiyseniz aracı havuzunuzun adıyla) değiştirin.Gözden Geçir sekmesinde Kaydet ve çalıştır'ı seçin. Değişikliklerinizi GitHub'a kaydetmek ve işlem hattını başlatmak için Doğrudan ana dala işle'yi seçin ve Kaydet'i seçip ikinci kez çalıştırın . gibi
This pipeline needs permission to access a resource before this run can continue
bir iletiyle izin vermeniz istenirse Görüntüle'yi seçin ve erişime izin vermek için istemleri izleyin.
İşlem hattının çalışmasını izleyin
İşler'in altında İş'i seçin. Ardından, adımların her biri aracılığıyla derleme işlemini izleyin. Derleme tamamlandığında iş çıkışını metin dosyası olarak görmek için Ham günlüğü görüntüle'yi de seçebilirsiniz.
İşlem hattınız hızlı bir şekilde başlatılmazsa Codespaces'ın çalışmaya devam ettiğini doğrulayın. Codespaces 30 dakika sonra kapanır ve yeniden başlatılması gerekebilir.
İşlem hattı durumunuz Kuyruğa alındı olarak kalırsa ve birkaç dakika sonra Çalışıyor durumuna geçmiyorsa paralel işlerinizi denetleyin ve ücretsiz bir izin isteyin. Paralel işlere erişiminiz yoksa Codespaces ile modülü baştan başlatabilirsiniz.
Burada, derleme tanımının oluşturduğu adımları görürsünüz. VM'yi hazırlar, GitHub'dan en son kaynak kodunu getirir ve ardından uygulamayı derler.
Artık derleme görevleri eklemek için bir yeriniz olduğundan bu yapılandırma harika bir başlangıçtır. Ancak JavaScript ve CSS dosyalarını küçültmek gibi Tailspin ekibinin ihtiyaçlarını karşılayacak şekilde güncelleştirilmesi gerekir.
Bahşiş
E-postanızı denetleyin. Çalıştırmanızın sonuçlarını içeren bir derleme bildirimi almış olabilirsiniz. Derlemelerin ne zaman tamamlanıp tamamlanmadığını ve her derlemenin başarılı olup olmadığını ekip üyelerinize bildirmek için bu bildirimleri kullanabilirsiniz.
Derleme görevleri ekleme
Artık çalışan bir derleme işlemine sahip olduğunuza göre, derleme görevleri eklemeye başlayabilirsiniz.
Daldan main
çalıştığınızı unutmayın. Çalışmanızı tutmak için artık adlı build-pipeline
bir dal oluşturacaksınız. Dal size denemeler yapmak için bir yer sağlar ve ekibin geri kalanını etkilemeden derlemenizin tamamen çalışmasını sağlar.
Derleme görevlerini azure-pipelines.yml'ye doğrudan Azure Pipelines'dan ekleyebilirsiniz. Azure Pipelines değişikliklerinizi doğrudan dalınıza kaydeder. Burada azure-pipelines.yml dosyasını yerel olarak değiştirecek ve değişikliklerinizi GitHub'a gönderecek veya karşıya yükleyeceksiniz. Bu şekilde yapmak Git becerilerinizi geliştirmenizi sağlar. Değişiklikleri gönderdiğinizde işlem hattının uygulamayı otomatik olarak derlemesini izleyin.
Uygulamada, derleme görevlerini birer birer ekleyebilir, değişikliklerinizi gönderebilir ve derlemenin çalışmasını izleyebilirsiniz. Burada, daha önce belirlediğimiz tüm derleme görevlerini bir kerede ekleyeceksiniz.
Dekont
Birkaç Git komutu çalıştırmak üzeresiniz. Git'i yeni kullanıyorsanız endişelenmeyin. Sana ne yapacağını göstereceğiz. Ayrıca, gelecek modüllerde Git hakkında daha fazla ayrıntıya ineceğiz.
Visual Studio Code'da tümleşik terminale gidin. Deponuzdaki
main
dala gidip adımları uyguladığınızdan emin olun.GitHub'dan en son değişiklikleri getirmek ve dalınızı
main
güncelleştirmek için bugit pull
komutu çalıştırın.git pull origin main
Çıkışta Git'in azure-pipelines.yml adlı bir dosya getirdiğini göreceksiniz. Bu, Azure Pipelines'ın sizin için oluşturduğu başlangıç işlem hattı yapılandırmasıdır. İşlem hattını ayarladığınızda Azure Pipelines bu dosyayı GitHub deponuza ekler.
adlı
build-pipeline
bir dal oluşturmak için şugit checkout
komutu çalıştırın:git checkout -B build-pipeline
Visual Studio Code'da azure-pipelines.yml dosyasını burada gördüğünüz gibi değiştirin:
trigger: - '*' pool: name: 'Default' # Replace Default with the name of your agent pool if you used a different pool variables: buildConfiguration: 'Release' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK 6.x' inputs: packageType: sdk version: '6.x' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: Tailspin.SpaceGame.Web/wwwroot - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - Release' inputs: command: 'build' arguments: '--no-restore --configuration Release' projects: '**/*.csproj'
trigger: - '*' pool: vmImage: ubuntu-latest variables: buildConfiguration: 'Release' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK 6.x' inputs: packageType: sdk version: '6.x' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: Tailspin.SpaceGame.Web/wwwroot - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - Release' inputs: command: 'build' arguments: '--no-restore --configuration Release' projects: '**/*.csproj'
steps
bölümünün altında, daha önce tanımladığımız betik komutlarının her birine eşlenen derleme görevlerini görürsünüz.Azure Pipelines, birçok yaygın derleme etkinliğine eşlenen yerleşik derleme görevleri sağlar. Örneğin,
DotNetCoreCLI@2
görev komut satırı yardımcı programıyladotnet
eşler. İşlem hattı iki kez kullanırDotNetCoreCLI@2
: projenin bağımlılıklarını geri yüklemek veya yüklemek için bir kez ve projeyi oluşturmak için bir kez.Tüm derleme etkinliklerinin yerleşik bir göreve eşlenmediğini unutmayın. Örneğin, node-Sass yardımcı programını çalıştıran veya derleme bilgilerini bir metin dosyasına yazan yerleşik bir görev yoktur. Genel sistem komutlarını çalıştırmak için veya
script
görevini kullanırsınızCmdLine@2
. İşlem hattı, için ortak bir kısayolCmdLine@2
olduğundan görevi kullanırscript
.Derleme hakkındaki bilgileri bir dosyaya yazan derleme adımında şu öğelere dikkat edin:
$(Build.DefinitionName)
$(Build.BuildId)
$(Build.BuildNumber)
Bu öğeler, sistemin işlem hatlarınızda kullanmak üzere sağladığı yerleşik değişkenlerdir:
$(Build.DefinitionName)
derleme işlem hattının adıdır. Örneğin, "SpaceGame-Web-CI."$(Build.BuildId)
tamamlanmış derleme için 115 gibi sayısal bir tanımlayıcıdır.$(Build.BuildNumber)
tamamlanmış derlemenin adıdır. Biçimi yapılandırabilirsiniz, ancak varsayılan olarak, derleme numarası geçerli tarihi ve ardından o günün derleme numarasını içerir. Örnek derleme numarası: "20190329.1."
Ayrıca, yakında gerçekleştirebileceğiniz kendi değişkenlerinizi de tanımlayabilirsiniz.
İlk derleme adımı olan görevi de fark
UseDotNet@2
etmiş olabilirsiniz. Mara, derleme betiğinin gerekli derleme araçlarını yüklemediğini hatırladı. Derleme aracısı birkaç .NET SDK sürümüyle birlikte gelse de, bu görev işlem hattı yazarının derleme aracısı üzerinde kullanması gereken sürümü kolayca belirtmesini sağlar.Tümleşik terminalden azure-pipelines.yml dosyasını dizine eklemek, değişikliği işlemek ve değişikliği GitHub'a göndermek için aşağıdaki Git komutlarını çalıştırın. Bu adımlar, daha önce gerçekleştirdiğiniz adımlara benzer.
Bahşiş
Bu Git komutlarını çalıştırmadan önce azure-pipelines.yml dosyasını kaydetmeyi unutmayın.
git add azure-pipelines.yml git commit -m "Add build tasks" git push origin build-pipeline
Bu kez dalı değil dalı GitHub'a
main
gönderebilirsinizbuild-pipeline
.Dalın GitHub'a gönderilmesi, Azure Pipelines'da derleme işlemini tetikler.
Azure Pipelines'da derlemenize gidin. Bunu yapmak için sayfanın yanında İşlem hatları'nı ve ardından işlem hattınızı seçin. İşleme iletinizi ve derlemenin daldaki
build-pipeline
kodu kullanarak çalıştığını görürsünüz.Bahşiş
Derlemeyi hemen görmüyorsanız, birkaç dakika bekleyin veya sayfayı yenileyin.
Derlemenizi seçin ve İşler'i seçin ve çalıştırılırken derleme görevlerini takip edin.
Örneğin, görev JavaScript ve CSS varlıklarını simge durumuna küçülten gulp görevlerini gerçekleştirmek için çalıştırıldığında
gulp@1
şunlar olur:Herhangi bir adım başarısız olursa, hatayı tanılamak ve düzeltmek için çıkışta hata görürsünüz.
Daha önce daha az derleme yapılandırması çalıştırmıştınız. Bu kez, derleme tamamlandığında uygulamayı derlemek için gereken daha eksiksiz bir görev kümesi görürsünüz.
Derlemeniz tamamlandıktan sonra, derlemenin genel ilerleme durumunu görmek için adımlardan birini seçin. Buradan, GitHub'da derleme günlüklerine veya ilişkili değişikliğe atlayabilirsiniz.