GitHub Release görevi

Azure Pipelines

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

Önkoşullar

GitHub hizmet bağlantısı

bu görev, GitHub deposunda yazma izni olan GitHub bir hizmet bağlantısı gerektirir. Azure Pipelines projenizde bir 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.

YAML kod parçacığı

# GitHub Release
# Create, edit, or delete a GitHub release
- task: GitHubRelease@0
  inputs:
    gitHubConnection: 
    #repositoryName: '$(Build.Repository.Name)' 
    #action: 'create' # Options: create, edit, delete
    #target: '$(Build.SourceVersion)' # Required when action == Create || Action == Edit
    #tagSource: 'auto' # Required when action == Create# Options: auto, manual
    #tagPattern: # Optional
    #tag: # Required when action == Edit || Action == Delete || TagSource == Manual
    #title: # Optional
    #releaseNotesSource: 'file' # Optional. Options: file, inline
    #releaseNotesInline: Use this option to manually enter release notes. Use with releaseNotesSource = inline
    #releaseNotesFilePath: # Optional. Use the contents of a file as release notes. 
    #releaseNotes: # Optional
    #assets: '$(Build.ArtifactStagingDirectory)/*' # Optional
    #assetUploadMode: 'delete' # Optional. Options: delete, replace
    #isDraft: false # Optional
    #isPreRelease: false # Optional
    #addChangeLog: true # Optional
    #compareWith: 'lastFullRelease' # Required when addChangeLog == True. Options: lastFullRelease, lastRelease, lastReleaseByTag
    #releaseTag: # Required when compareWith == LastReleaseByTag

Bağımsız değişkenler

Bağımsız DeğişkenDescription
gitHubConnection
GitHub bağlantısı
Istenir GitHub bağlantınızın hizmet bağlantı adını girin. Burada hizmet bağlantıları hakkında daha fazla bilgi edinin .
repositoryName
Depo
Istenir GitHub sürümlerinin oluşturulacağı GitHub deponun adını seçin.
action
Eylem
Istenir Gerçekleştirmek istediğiniz yayın işleminin türünü seçin. bu görev GitHub bir sürüm oluşturabilir, düzenleyebilir veya atabilir.
target
Hedef
Istenir bu, GitHub sürümünün oluşturulacağı kayıt SHA 'dır. Ör. 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 Değişkenleri burada da kullanabilirsiniz.
tagSource
Etiket kaynağı
Istenir Yayın oluşturma için kullanılacak etiketi yapılandırın. ' Git Tag ' seçeneği, bu işlemeyle ilişkili etiketi otomatik olarak alır. El ile bir etiket sağlamak istediğiniz durumlarda ' Kullanıcı tarafından belirtilen etiketi ' seçeneğini kullanın.
tag
Etiket
Istenir Yayın oluşturmak, düzenlemek veya atmak istediğiniz etiketi belirtin. Değişkenleri burada da kullanabilirsiniz. Ör. $(tagName)
title
Yayın başlığı
Seçim GitHub sürümünün başlığını belirtin. Boş bırakılırsa, etiket yayın başlığı olarak kullanılacaktır.
releaseNotesSource
Sürüm notları kaynağı
Seçim GitHub sürümünün açıklamasını belirtin. Dosya içeriğini sürüm notları olarak kullanmak için ' sürüm notları dosyası ' seçeneğini kullanın. Sürüm notlarını 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
Seçim Sürüm notlarını içeren dosyayı seçin.
releaseNotesInline
Not satır içi sürüm notları
Seçim Sürüm notlarınızı buraya yazın. Markaşağı desteklenir.
assets
Varlıklar
Seçim Yayın için varlık olarak karşıya yüklenecek dosyaları belirtin. Bir dosya kümesi belirtmek için joker karakterler kullanabilirsiniz. Ör. $(Build.ArtifactStagingDirectory)/*.zip Her satır için bir tane olmak üzere birden çok desen de belirtebilirsiniz. Varsayılan olarak, dizindeki tüm dosyalar $(Build.ArtifactStagingDirectory) karşıya yüklenir.
assetUploadMode
Varlık karşıya yükleme modu
Seçim İlk olarak yayındaki mevcut varlıkları silmek için ' mevcut varlıkları Sil ' seçeneğini kullanın ve tüm varlıkları karşıya yükleyin. Aynı ada sahip herhangi bir varlığı değiştirmek için ' mevcut varlıkları Değiştir ' seçeneğini kullanın.
isDraft
Taslak yayın
Seçim Yayının taslak (yayımdan kaldırılmış) olarak kaydedilip edilmeyeceğini belirtin. Varsa false , yayın yayımlanır.
isPreRelease
Yayın öncesi
Seçim Yayının yayın öncesi olarak işaretlenip işaretlenmeyeceğini belirtin.
addChangeLog
CHANGELOG Ekle
Seçim Olarak ayarlanırsa true , bu ile son yayımlanan yayın arasındaki değişikliklerin (işlemeler ve sorunlar) bir listesi oluşturulur ve sürüm notlarına eklenir.

Örnekler

GitHub yayını oluşturma

aşağıdaki yaml, görev her çalıştığında GitHub bir yayın oluşturur. Yapı numarası yayın için 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 yayının parçası olan işlemeler ve sorunlar listesi) oluşturur ve 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 yayın oluşturma denetimini de denetleyebilirsiniz. aşağıdaki yaml yalnızca işlem hattının tetiklediği işleme ile ilişkili bir Git etiketi olduğunda GitHub bir yayın 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örev çalışırken daha iyi denetim sağlamak için görevi görev koşullarıyla birlikte kullanmak isteyebilirsiniz, böylece yayınların oluşturulmasını sınırlayabilirsiniz. Örneğin, aşağıdaki YAML 'de görev yalnızca işlem hattı ' refs/Tags/Release-v * ' düzeniyle eşleşen bir git etiketi tarafından tetiklendiğinde çalışı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, bir GitHub sürümünün durumunu ' taslak ' iken ' yayımlandı ' olarak güncelleştirir. Düzenlenecek yayın belirtilen etikete göre belirlenir.

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

GitHub yayınını silme

aşağıdaki yaml bir GitHub sürümünü siler. Silinecek yayın belirtilen etikete göre 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 GitHub bir sürüm oluşturun ve satır içi sürüm notları ekleyin.

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

Açık kaynak

Bu görev GitHubaçık kaynağıdır. Geribildirim ve katılımlar hoş geldiniz.