GitHubRelease@1 - GitHub Release v1 görevi

GitHub sürümü oluşturmak, düzenlemek veya silmek için bu görevi kullanın.

Söz dizimi

# GitHub Release v1
# Create, edit, or delete a GitHub release.
- task: GitHubRelease@1
  inputs:
    gitHubConnection: # string. Required. GitHub connection (OAuth or PAT). 
    repositoryName: '$(Build.Repository.Name)' # string. Required. Repository. Default: $(Build.Repository.Name).
    action: 'create' # 'create' | 'edit' | 'delete'. Required. Action. Default: create.
    #target: '$(Build.SourceVersion)' # string. Required when action = create || action = edit. Target. Default: $(Build.SourceVersion).
    tagSource: 'gitTag' # 'gitTag' | 'userSpecifiedTag'. Required when action = create. Tag source. Default: gitTag.
    #tagPattern: # string. Optional. Use when tagSource = gitTag. Tag Pattern. 
    #tag: # string. Required when action = edit || action = delete || tagSource = userSpecifiedTag. Tag. 
    #title: # string. Optional. Use when action = create || action = edit. Release title. 
    #releaseNotesSource: 'filePath' # 'filePath' | 'inline'. Optional. Use when action = create || action = edit. Release notes source. Default: filePath.
    #releaseNotesFilePath: # string. Optional. Use when releaseNotesSource = filePath. Release notes file path. 
    #releaseNotesInline: # string. Optional. Use when releaseNotesSource = inline. Release notes. 
    #assets: '$(Build.ArtifactStagingDirectory)/*' # string. Optional. Use when action = create || action = edit. Assets. Default: $(Build.ArtifactStagingDirectory)/*.
    #assetUploadMode: 'delete' # 'delete' | 'replace'. Optional. Use when action = edit. Asset upload mode. Default: delete.
    #isDraft: false # boolean. Optional. Use when action = create || action = edit. Draft release. Default: false.
    #isPreRelease: false # boolean. Optional. Use when action = create || action = edit. Pre-release. Default: false.
    #addChangeLog: true # boolean. Optional. Use when action = create || action = edit. Add changelog. Default: true.
  # Changelog configuration
    changeLogCompareToRelease: 'lastFullRelease' # 'lastFullRelease' | 'lastNonDraftRelease' | 'lastNonDraftReleaseByTag'. Required when addChangeLog = true. Compare to. Default: lastFullRelease.
    #changeLogCompareToReleaseTag: # string. Required when changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true. Release Tag. 
    changeLogType: 'commitBased' # 'commitBased' | 'issueBased'. Required when addChangeLog = true. Changelog type. Default: commitBased.
    #changeLogLabels: '[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]' # string. Optional. Use when changeLogType = issueBased && addChangeLog = true. Categories. Default: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Girişler

gitHubConnection - GitHub bağlantısı (OAuth veya PAT)
string. Gereklidir.

GitHub deposuna bağlanmak için kullanılacak GitHub hizmet bağlantısının adını belirtir. Bağlantı, GitHub kullanıcısının OAuth veya GitHub kişisel erişim belirtecini temel almalıdır. Hizmet bağlantıları hakkında daha fazla bilgi için bkz. Hizmet bağlantılarını yönetme.


repositoryName - Depo
string. Gereklidir. Varsayılan değer: $(Build.Repository.Name).

GitHub sürümünü oluşturacağınız, düzenleyebileceğiniz veya sileceğiniz GitHub deposunun adını belirtir.


action - Eylem
string. Gereklidir. İzin verilen değerler: create, edit, delete. Varsayılan değer: create.

Gerçekleştirilecek yayın işleminin türünü belirtir. Bu görev bir GitHub sürümü oluşturabilir, düzenleyebilir veya silebilir.


target - Hedef
string. olduğunda action = create || action = editgereklidir. Varsayılan değer: $(Build.SourceVersion).

GitHub sürümünü oluşturmak için kullanmak istediğiniz işleme SHA'sını belirtir, örneğin 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. Bu alanda gibi $(myCommitSHA)bir değişken de kullanabilirsiniz.


tagSource - Etiket kaynağı
string. olduğunda action = creategereklidir. İzin verilen değerler: gitTag (Git etiketi), userSpecifiedTag (Kullanıcı tarafından belirtilen etiket). Varsayılan değer: gitTag.

Yayın oluşturmak için kullanmak istediğiniz etiketi belirtir. seçeneği gitTag , Git işlemesiyle ilişkili etiketi otomatik olarak kullanır. userSpecifiedTag El ile etiket sağlamak için seçeneğini kullanın.


tagPattern - Etiket Deseni
string. İsteğe bağlı. when tagSource = gitTagkullanın.

Regex kullanarak Git etiket desenini belirtir, örneğin release-v1.*. GitHub sürümü yalnızca eşleşen Git etiketine sahip işlemeler için oluşturulur.


tag - Etiket
string. olduğunda action = edit || action = delete || tagSource = userSpecifiedTaggereklidir.

Yayın oluştururken, düzenlerken veya silerken kullanmak istediğiniz etiketi belirtir. Bu alanda gibi $(myTagName)bir değişken de kullanabilirsiniz.


title - Sürüm başlığı
string. İsteğe bağlı. when action = create || action = editkullanın.

GitHub sürümünün başlığını belirtir. Boş bırakılırsa, etiket yayın başlığı olarak kullanılır.


releaseNotesSource - Sürüm notları kaynağı
string. İsteğe bağlı. when action = create || action = editkullanın. İzin verilen değerler: filePath (Sürüm notları dosyası), inline (Satır içi sürüm notları). Varsayılan değer: filePath.

GitHub sürümünün açıklamasını belirtir. filePath Sürüm notları olarak dosya içeriğini kullanmak için (Sürüm notları dosyası) seçeneğini kullanın. Sürüm notlarını inline el ile girmek için (Satır içi sürüm notları) seçeneğini kullanın


releaseNotesFilePath - Sürüm notları dosya yolu
string. İsteğe bağlı. when releaseNotesSource = filePathkullanın.

Sürüm notlarını içeren dosyayı belirtir.


releaseNotesInline - Sürüm notları
string. İsteğe bağlı. when releaseNotesSource = inlinekullanın.

Sürüm notlarını belirtir. Markdown desteklenir.


assets - Varlık
string. İsteğe bağlı. when action = create || action = editkullanın. Varsayılan değer: $(Build.ArtifactStagingDirectory)/*.

Sürümün varlıkları olarak karşıya yüklemek istediğiniz dosyaları belirtir. Birden çok dosya belirtmek için joker karakterler kullanabilirsiniz. Örneğin yayın işlem hatları için kullanın $(Build.ArtifactStagingDirectory)/*.zip veya kullanın $(System.DefaultWorkingDirectory)/*.zip .

Ayrıca, her satırda bir tane olacak şekilde birden çok desen de belirtebilirsiniz. Varsayılan olarak, dizindeki $(Build.ArtifactStagingDirectory) tüm dosyalar karşıya yüklenir. Kullanılabilir önceden tanımlanmış değişkenlerin listesi hakkında daha fazla bilgi için bkz. derleme değişkenleri ve yayın değişkenleri.


assetUploadMode - Varlık karşıya yükleme modu
string. İsteğe bağlı. when action = editkullanın. İzin verilen değerler: delete (Var olan varlıkları sil), replace (Varolan varlıkları değiştirme). Varsayılan değer: delete.

Kullanmak istediğiniz varlık karşıya yükleme modunu belirtir. Önce yayındaki delete mevcut varlıkları silmek ve ardından tüm varlıkları karşıya yüklemek için (Mevcut varlıkları sil) seçeneğini kullanın. replace Aynı ada sahip tüm varlıkları değiştirmek için (Var olan varlıkları değiştir) seçeneğini kullanın.


isDraft - Taslak sürüm
boolean. İsteğe bağlı. when action = create || action = editkullanın. Varsayılan değer: false.

Yayının taslak olarak kaydedilip kaydedilmeyeceğini gösterir (yayımdan kaldırılmış). ise falseyayın yayımlanır.


isPreRelease - Pre
boolean. İsteğe bağlı. when action = create || action = editkullanın. Varsayılan değer: false.

Yayının yayın öncesi olarak işaretlenip işaretlenmemesi gerektiğini gösterir.


addChangeLog - Değişiklik günlüğü ekleme
boolean. İsteğe bağlı. when action = create || action = editkullanın. Varsayılan değer: true.

Değişiklik günlüğü eklemek isteyip istemediğinizi belirtir. olarak trueayarlanırsa, geçerli sürümle son yayımlanan sürüm arasındaki değişikliklerin (işlemeler ve sorunlar) listesi oluşturulur ve sürüm notlarına eklenir.


changeLogCompareToRelease - Karşılaştır:
string. olduğunda addChangeLog = truegereklidir. İzin verilen değerler: lastFullRelease (Son tam sürüm), lastNonDraftRelease (Taslak olmayan son sürüm), lastNonDraftReleaseByTag (Etikete göre taslak olmayan son sürüm). Varsayılan değer: lastFullRelease.

Değişiklik günlüğü oluşturmak için hangi sürümle karşılaştırılmasını gösterir:

  • lastFullRelease (Son tam sürüm): Geçerli sürümü, yayın öncesi olarak işaretlenmeyen en son taslak olmayan sürümle karşılaştırır.
  • lastNonDraftRelease (Taslak olmayan son sürüm): Geçerli sürümü en son taslak olmayan sürümle karşılaştırır.
  • lastNonDraftReleaseByTag (Etikete göre taslak olmayan son sürüm): Geçerli sürümü belirtilen etiketle eşleşen taslak olmayan son sürümle karşılaştırır. Tam etiket yerine bir regex de belirtebilirsiniz.

changeLogCompareToReleaseTag - Yayın Etiketi
string. olduğunda changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = truegereklidir.

Yayın etiketi için regex değerini belirtir. Bu etiketle eşleşen sürüm, değişiklik günlüğü hesaplaması için temel olarak kullanılır.


changeLogType - Değişiklik günlüğü türü
string. olduğunda addChangeLog = truegereklidir. İzin verilen değerler: commitBased (İşleme tabanlı), issueBased (Sorun tabanlı). Varsayılan değer: commitBased.

Değişiklik günlüğü türünü belirtir. Değişiklik günlüğü işleme tabanlı veya sorun tabanlı olabilir. İşleme tabanlı değişiklik günlüğü, bir yayına dahil edilen tüm işlemeleri listeler. Sorun tabanlı bir değişiklik günlüğü, sürüme dahil olan tüm sorunları veya çekme isteklerini (PR) listeler.


changeLogLabels - Kategori
string. İsteğe bağlı. when changeLogType = issueBased && addChangeLog = truekullanın. Varsayılan değer: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Değişiklikleri sorunla veya pr ile ilişkili etikete göre kategorilere ayırır. Etiket için, kategorinin görünen adından ve sorunun durumundan bahsedebilirsiniz. Etiket örnekleri şunlardır: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Bir değişikliğin üzerinde birden çok etiket olduğu durumlarda, belirtilen ilk etiket öncelik alır. Sorunların veya PR'lerin düz listesini görmek için bu alanı boş bırakın.


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

GitHub sürümü oluşturmak, düzenlemek veya atmak için işlem hattınızda bu görevi kullanın.

GitHub hizmet bağlantısı

Bu görev, GitHub deposuna Yazma iznine sahip bir GitHub hizmet bağlantısı gerektirir. Azure Pipelines projenizde GitHub hizmet bağlantısı oluşturabilirsiniz. Oluşturulduktan sonra, bu görevin ayarlarında hizmet bağlantısının adını kullanın.

Örnekler

GitHub sürümü oluşturma

Aşağıdaki YAML, görev her çalıştırıldığında bir GitHub sürümü oluşturur. Derleme numarası, sürümün etiket sürümü olarak kullanılır. $(Build.ArtifactStagingDirectory) klasöründeki tüm .exe dosyaları ve README.txt dosyaları varlık olarak karşıya yüklenir. Varsayılan olarak, görev ayrıca bir değişiklik günlüğü (bu sürümün bir parçası olan işlemelerin ve sorunların listesi) oluşturur ve bunu sürüm notları olarak yayımlar.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    tagSource: manual
    tag: $(Build.BuildNumber)      
    assets: |
      $(Build.ArtifactStagingDirectory)/*.exe
      $(Build.ArtifactStagingDirectory)/README.txt

Ayrıca, depo etiketlerine göre sürümün oluşturulmasını da denetleyebilirsiniz. Aşağıdaki YAML, yalnızca işlem hattını tetikleyen işlemenin kendisiyle ilişkilendirilmiş bir Git etiketi olduğunda bir GitHub sürümü oluşturur. GitHub sürümü, ilişkili Git etiketiyle aynı etiket sürümüyle oluşturulur.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

Ayrıca, görevin ne zaman çalıştırıldığında daha iyi denetim elde etmek ve böylece yayınların oluşturulmasını kısıtlamak için görevi görev koşullarıyla birlikte kullanmak isteyebilirsiniz. Örneğin, aşağıdaki YAML'de görev yalnızca işlem hattı 'refs/tags/release-v*' deseni ile eşleşen bir Git etiketi tarafından tetiklendiğinde çalıştırılır.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'   
  condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/release-v')   
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

GitHub yayınını düzenleme

Aşağıdaki YAML, GitHub sürümünün durumunu 'taslak' olan 'yayımlandı' olarak güncelleştirir. Düzenlenecek sürüm, belirtilen etiket tarafından belirlenir.

- task: GithubRelease@1
  displayName: 'Edit GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: edit
    tag: $(myDraftReleaseVersion)
    isDraft: false

GitHub sürümünü silme

Aşağıdaki YAML bir GitHub sürümünü siler. Silinecek sürüm, belirtilen etiket tarafından belirlenir.

- task: GithubRelease@1
  displayName: 'Delete GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: delete
    tag: $(myDraftReleaseVersion)

Satır içi sürüm notları

Aşağıdaki YAML, bir GitHub sürümü oluşturur ve satır içi sürüm notları ekler.

- task: GitHubRelease@1
  inputs:
    gitHubConnection: <GITHUB_SERVICE_CONNECTION>
    repositoryName: '$(Build.Repository.Name)'
    action: 'create'
    target: '$(Build.SourceVersion)'
    tagSource: 'userSpecifiedTag'
    tag: <YOUR_TAG>
    title: <YOUR_TITLE>
    releaseNotesSource: 'inline'
    releaseNotesInline: <YOUR_RELEASE_NOTES>

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Agent, DeploymentGroup
Talep Hiçbiri
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü 2.0.0 veya üzeri
Görev kategorisi Yardımcı Program