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 = edit
gereklidir. 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 = create
gereklidir. İ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 = gitTag
kullanı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 = userSpecifiedTag
gereklidir.
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 = edit
kullanı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 = edit
kullanı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 = filePath
kullanın.
Sürüm notlarını içeren dosyayı belirtir.
releaseNotesInline
- Sürüm notları
string
. İsteğe bağlı. when releaseNotesSource = inline
kullanın.
Sürüm notlarını belirtir. Markdown desteklenir.
assets
- Varlık
string
. İsteğe bağlı. when action = create || action = edit
kullanı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 = edit
kullanı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 = edit
kullanın. Varsayılan değer: false
.
Yayının taslak olarak kaydedilip kaydedilmeyeceğini gösterir (yayımdan kaldırılmış). ise false
yayın yayımlanır.
isPreRelease
- Pre
boolean
. İsteğe bağlı. when action = create || action = edit
kullanı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 = edit
kullanın. Varsayılan değer: true
.
Değişiklik günlüğü eklemek isteyip istemediğinizi belirtir. olarak true
ayarlanı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 = true
gereklidir. İ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 = true
gereklidir.
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 = true
gereklidir. İ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 = true
kullanı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 |