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:

Özel biçimlendirme seçeneklerine sahip günlüklerin ekran görüntüsü

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

Günlüklerin daraltılmış bölümünün ekran görüntüsü

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 = error veya warning (Gerekli)
  • sourcepath = kaynak dosya konumu
  • linenumber = 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 =
    • Succeeded Görev başarılı oldu.
    • SucceededWithIssues Görevle ilgili sorunlar vardı. Derleme en iyi şekilde kısmen başarılı olacak şekilde tamamlanır.
    • Failed Derleme 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'si
  • type = 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 = Datetime
  • finishtime = Datetime
  • progress = tamamlanma yüzdesi
  • state = Unknown | Initialized | InProgress | Completed
  • result = 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ü, birisi authParameter , dataParameter veya url (gerekli)
  • key= anahtar (gerekli, değilse field = 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/build
    
  • null

    ##vso[artifact.associate type=filepath;artifactname=MyFileShareDrop]\\MyShare\MyDropLocation
    
  • VersionControl

    ##vso[artifact.associate type=versioncontrol;artifactname=MyTfvcPath]$/MyTeamProj/MyFolder
    
  • gitref

    ##vso[artifact.associate type=gitref;artifactname=MyTag]refs/tags/MyGitTag
    
  • tfvclabel

    ##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