Günlüğe kaydetme komutları
Günlüğe kaydetme komutları, görevlerin ve betiklerin aracıyla iletişim kurmasıdır. Yeni değişkenler oluşturma, bir adımı başarısız olarakişaretleme ve yapıtları karşıya yükleme gibi eylemleri içerir. Günlüğe kaydetme komutları, işlem hattı sorunlarını giderirken yararlıdır.
| Tür | Komutlar |
|---|---|
| Görev komutları | LogIssue, SetProgress, LogDetail, SetVariable, SetEndpoint, AddAttachment, UploadSummary, UploadFile, PrependPath |
| Yapıt komutları | ,Upload |
| Derleme komutları | UploadLog, UpdateBuildNumber, AddBuildTag |
| Sürüm komutları | UpdateReleaseName |
Günlük komutu biçimi
Günlük komutu için genel biçim şu şekildedir:
##vso[area.action property1=value;property2=value;...]message
Biraz farklı söz dizimi olan birkaç biçimlendirme komutu da vardır:
##[command]message
Günlüğe kaydetme komutunu çağırmak için komutu standart çıkış aracılığıyla yankılandırın.
#!/bin/bash
echo "##vso[task.setvariable variable=testvar;]testvalue"
Dosya yolları mutlak yol olarak ver Windows veya Linux ve macOS'ta ile / başlandı.
Not
Linux ve macOS'ta günlüğe kaydetmeden önce yürütülen 'set -x' komutunun destek olmadığını lütfen unutmayın.
Biçimlendirme komutları
Not
Günlüğe kaydetme komutları için UTF-8 biçimlendirmesini kullanın.
Bu komutlar, günlük biçimlendirıcıya gönderilen iletilerdir Azure Pipelines. Belirli günlük satırlarını hatalar, uyarılar, daraltılabilir bölümler gibi şekilde işaret eder.
Biçimlendirme komutları:
##[group]Beginning of a group
##[warning]Warning message
##[error]Error message
##[section]Start of a section
##[debug]Debug text
##[command]Command-line being run
##[endgroup]
Bu komutlar günlüklerde şu şekilde işler:

Bu komut bloğu da daraltılmış olabilir ve şu şekildedir:

Görev komutları
LogIssue: Bir hatayı veya uyarıyı günlüğe kaydedilir
##vso[task.logissue]error/warning message
Kullanım
Geçerli görevin zaman çizelgesi kaydında bir hata veya uyarı iletisi günlüğe kaydetme.
Özellikler
type=errorveyawarning(Gerekli)sourcepath= kaynak dosya konumulinenumber= satır numarasıcolumnnumber= sütun numarasıcode= hata veya uyarı kodu
Örnek: Hata günlüğe kaydedilir
#!/bin/bash
echo "##vso[task.logissue type=error]Something went very wrong."
exit 1
İpucu
exit 1 isteğe bağlıdır, ancak genellikle bir hata günlüğe kaydediledikten hemen sonra çıkarsınız. Denetim Seçenekleri: Hatada devam'ıseçerse, başarısız derleme yerine kısmen başarılı bir derleme elde eder.
Örnek: Dosyada belirli bir yer hakkında uyarıyı günlüğe kaydedin
#!/bin/bash
echo "##vso[task.logissue type=warning;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]Found something that could be a problem."
SetProgress: Tamamlanan yüzdeyi göster
##vso[task.setprogress]current operation
Kullanım
Geçerli görev için ilerleme ve geçerli işlemi ayarlayın.
Özellikler
value= tamamlanma yüzdesi
Örnek
echo "Begin a lengthy process..."
for i in {0..100..10}
do
sleep 1
echo "##vso[task.setprogress value=$i;]Sample Progress Indicator"
done
echo "Lengthy process is complete."
Nasıl göründüğünü görmek için derlemeyi kaydedin, kuyruğa kaydedin ve ardından derleme çalıştırmayı izleyin. Görev bu betiği çalıştıracaksa ilerleme göstergesinin değiştikçe gözlemle.
Tamamlama: Zaman çizelgesini tamamlama
##vso[task.complete]current operation
Kullanım
Geçerli görevin zaman çizelgesi kaydını bitirin, görev sonucu ve geçerli işlemi ayarlayın. Sonuç sağlanmazsa, sonucu başarılı olarak ayarlayın.
Özellikler
result=SucceededGörev başarılı oldu.SucceededWithIssuesGörevle ilgili sorunlar vardı. Derleme en iyi şekilde kısmen başarılı olacak şekilde tamamlanır.FailedDerleme başarısız olarak tamamlanır. (Denetim Seçenekleri: Hatada devam seçeneği seçilirse, derleme en iyi şekilde kısmen başarılı olarak tamamlanır.)
Örnek
##vso[task.complete result=Succeeded;]DONE
LogDetail: Bir görev için zaman çizelgesi kaydı oluşturma veya güncelleştirme
##vso[task.logdetail]current operation
Kullanım
Zaman çizelgesi kayıtlarını oluşturur ve günceller. Bu öncelikle adımlar, işler ve Azure Pipelines rapor etmek için şirket içinde kullanılır. Müşteriler zaman çizelgesine giriş ekleyene kadar genellikle kullanıcı arabiriminde gösterilmez.
Bir adım sırasında ilk ##vso[task.detail] kez gördüğünüzde, adım için bir "ayrıntı zaman çizelgesi" kaydı oluşturulur. ve temel alan iç içe geçmiş zaman çizelgesi kayıtları oluşturabilir ve idparentid güncelleştirebilirsiniz.
Görev yazarları, her zaman çizelgesi kaydı için hangi GUID'i kullandıklarını hatırlamaları gerekir. Günlük sistemi her zaman çizelgesi kaydı için GUID'i takip eder, bu nedenle yeni GUID'ler yeni bir zaman çizelgesi kaydı elde eder.
Özellikler
id= Zaman çizelgesi kaydı GUID'si (Gerekli)parentid= Üst zaman çizelgesi kaydı GUID'sitype= Kayıt türü (İlk kez gereklidir, üzerine yaza yazmaz)name= Kayıt adı (İlk kez gereklidir, üzerine yaza yazmaz)order= zaman çizelgesi kaydının sırası (İlk kez gereklidir, üzerine yazamz)starttime=Datetimefinishtime=Datetimeprogress= tamamlanma yüzdesistate=Unknown|Initialized|InProgress|Completedresult=Succeeded|SucceededWithIssues|Failed
Örnekler
Yeni kök zaman çizelgesi kaydı oluşturun:
##vso[task.logdetail id=new guid;name=project1;type=build;order=1]create new timeline record
Yeni iç içe geçmiş zaman çizelgesi kaydı oluşturun:
##vso[task.logdetail id=new guid;parentid=exist timeline record guid;name=project1;type=build;order=1]create new nested timeline record
Güncelleştirme mevcut zaman çizelgesi kaydı:
##vso[task.logdetail id=existing timeline record guid;progress=15;state=InProgress;]update timeline record
SetVariable: Bir değişkenin değerini başlatma veya değiştirme
##vso[task.setvariable]value
Kullanım
taskcontext değişken hizmetsinde bir değişken ayarlar. İlk görev bir değişkene ayarlanabilir ve aşağıdaki görevler değişkeni kullanabilir. değişkeni bir ortam değişkeni olarak aşağıdaki görevlere açık olur.
, issecret Olarak ayarlandığında true , değişkenin değeri gizli olarak kaydedilir ve günlüğünden maskelenir. Gizli değişkenler görevlere ortam değişkenleri olarak geçirilmez ve bunun yerine giriş olarak geçirilmesi gerekir.
Daha fazla ayrıntı için betiklerdeki değişkenleri ayarlama bölümüne bakın.
Özellikler
variable= değişken adı (gerekli)issecret= Boolean (Isteğe bağlı, varsayılan değeri false)isoutput= Boolean (Isteğe bağlı, varsayılan değeri false)isreadonly= Boolean (Isteğe bağlı, varsayılan değeri false)
Örnekler
Değişkenleri ayarlayın:
- bash: |
echo "##vso[task.setvariable variable=sauce;]crushed tomatoes"
echo "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"
echo "##vso[task.setvariable variable=outputSauce;isoutput=true]canned goods"
name: SetVars
Değişkenleri okuyun:
- bash: |
echo "Non-secrets automatically mapped in, sauce is $SAUCE"
echo "Secrets are not automatically mapped in, secretSauce is $SECRETSAUCE"
echo "You can use macro replacement to get secrets, and they'll be masked in the log: $(secretSauce)"
echo "Future jobs can also see $SETVARS_OUTPUTSAUCE"
echo "Future jobs can also see $(SetVars.outputSauce)"
Konsol çıkışı:
Non-secrets automatically mapped in, sauce is crushed tomatoes
Secrets are not automatically mapped in, secretSauce is
You can use macro replacement to get secrets, and they'll be masked in the log: ***
Future jobs can also see canned goods
Future jobs can also see canned goods
SetEndpoint: bir hizmet bağlantı alanını değiştirme
##vso[task.setendpoint]value
Kullanım
Verilen değere sahip bir hizmet bağlantı alanı ayarlayın. Güncelleştirilmiş değer aynı iş içinde yürütülen sonraki görevler için uç noktada saklanacaktır.
Özellikler
id= hizmet bağlantı KIMLIĞI (gerekli)field= alan türü, birisiauthParameter,dataParameterveyaurl(gerekli)key= anahtar (gerekli, değilsefield=url)
Örnekler
##vso[task.setendpoint id=000-0000-0000;field=authParameter;key=AccessToken]testvalue
##vso[task.setendpoint id=000-0000-0000;field=dataParameter;key=userVariable]testvalue
##vso[task.setendpoint id=000-0000-0000;field=url]https://example.com/service
AddAttachment: yapıya bir dosya Iliştirme
##vso[task.addattachment]value
Kullanım
Upload ve eki geçerli zaman çizelgesi kaydına ekler. Bu dosyalar Günlükler ile İndirimek üzere kullanılamaz. Bunlar, yalnızca tür veya ad değerleri kullanılarak uzantılar tarafından başvurulabilir.
Özellikler
type= ek türü (gerekli)name= ek adı (gerekli)
Örnek
##vso[task.addattachment type=myattachmenttype;name=myattachmentname;]c:\myattachment.txt
UploadSummary: derleme özetine bazı Markaşağı içerikleri ekleyin
##vso[task.uploadsummary]local file path
Kullanım
Upload ve geçerli zaman çizelgesi kaydına özet marka ekleyin. Bu Özet, derleme/sürüm özetine eklenmelidir ve günlüklerle indirilmek üzere kullanılamaz. Özet UTF-8 veya ASCII biçiminde olmalıdır. Özet bir Uzantılar sekmesinde görünür.
Örnekler
##vso[task.uploadsummary]c:\testsummary.md
Komut için kısa bir form
##vso[task.addattachment type=Distributedtask.Core.Summary;name=testsummaryname;]c:\testsummary.md
uploadfile: görev günlükleriyle indirilebilen bir dosya Upload
##vso[task.uploadfile]local file path
Kullanım
kullanıcı ilgilendiği dosyayı geçerli zaman çizelgesi kaydına ek günlük bilgileri olarak Upload. Dosya, görev günlükleriyle birlikte indirilebilir.
Örnek
##vso[task.uploadfile]c:\additionalfile.log
PrependPath: PATH ortam değişkeninin yolunu sonuna ekleyin
##vso[task.prependpath]local file path
Kullanım
PATH ortam değişkenini yola ön bekleyen olarak güncelleştirin. Güncelleştirilmiş ortam değişkeni sonraki görevlerde yansıtılır.
Örnek
##vso[task.prependpath]c:\my\directory\path
Yapıt komutları
İlişkilendir: yapıt başlatma
##vso[artifact.associate]artifact location
Kullanım
Mevcut bir yapıtın bağlantısını oluşturun. Yapıt konumu bir dosya kapsayıcısı yolu, VC yolu veya UNC paylaşma yolu olmalıdır.
Özellikler
artifactname= yapıt adı (gerekli)type= yapıt türü (gerekli)container|filepath|versioncontrol|gitref|tfvclabel
Örnekler
kapsayıcı
##vso[artifact.associate type=container;artifactname=MyServerDrop]#/1/buildnull
##vso[artifact.associate type=filepath;artifactname=MyFileShareDrop]\\MyShare\MyDropLocationVersionControl
##vso[artifact.associate type=versioncontrol;artifactname=MyTfvcPath]$/MyTeamProj/MyFoldergitref
##vso[artifact.associate type=gitref;artifactname=MyTag]refs/tags/MyGitTagtfvclabel
##vso[artifact.associate type=tfvclabel;artifactname=MyTag]MyTfvcLabelÖzel yapıt
##vso[artifact.associate artifactname=myDrop;artifacttype=myartifacttype]https://downloads.visualstudio.com/foo/bar/package.zip
Upload: yapıt Upload
##vso[artifact.upload]local file path
Kullanım
yerel bir dosyayı bir dosya kapsayıcısı klasörüne Upload ve isteğe bağlı olarak bir yapıtı yayımlayın artifactname .
Özellikler
containerfolder= dosyanın karşıya yükleneceği klasör, gerekirse klasör oluşturulacaktır.artifactname= yapıt adı. Istenir
Örnek
##vso[artifact.upload containerfolder=testresult;artifactname=uploadedresult]c:\testresult.trx
Not
Yapıt. İlişkilendir ve yapıt. upload arasındaki fark, ilki var olan bir yapıtın bağlantısını oluşturmak için, ikincisi ise yeni bir yapıtı yüklemek/yayımlamak için kullanılabilir.
Derleme komutları
uploadlog: günlük Upload
##vso[build.uploadlog]local file path
Kullanım
kullanıcının, derleme kapsayıcısının "" klasörü ile ilgilenen günlük Upload logs\tool .
Örnek
##vso[build.uploadlog]c:\msbuild.log
UpdateBuildNumber: otomatik olarak oluşturulan derleme numarasını geçersiz kıl
##vso[build.updatebuildnumber]build number
Kullanım
Ardışık düzen seçeneklerindebelirttiğiniz belirteçlerden otomatik olarak bir yapı numarası oluşturabilirsiniz. Ancak, yapı numarasını ayarlamak için kendi mantığınızı kullanmak istiyorsanız, bu günlüğe kaydetme komutunu kullanabilirsiniz.
Örnek
##vso[build.updatebuildnumber]my-new-build-number
AddBuildTag: yapıya bir etiket ekleyin
##vso[build.addbuildtag]build tag
Kullanım
Geçerli derleme için bir etiket ekleyin.
Örnek
##vso[build.addbuildtag]Tag_UnitTestPassed
Sürüm komutları
UpdateReleaseName: geçerli yayını yeniden adlandır
##vso[release.updatereleasename]release name
Kullanım
Çalışan yayın için sürüm adını güncelleştirin.
Not
Azure DevOps sürümünde desteklenir ve sürüm 2020 ' den başlayarak Azure DevOps Server.
Örnek
##vso[release.updatereleasename]my-new-release-name