Bagikan melalui


GitHubRelease@1 - Tugas Rilis GitHub v1

Gunakan tugas ini untuk membuat, mengedit, atau menghapus rilis GitHub.

Sintaks

# 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" }].

Input

gitHubConnection - Koneksi GitHub (OAuth atau PAT)
string. Wajib diisi.

Menentukan nama koneksi layanan GitHub yang akan digunakan untuk menyambungkan ke repositori GitHub. Koneksi harus didasarkan pada OAuth pengguna GitHub atau token akses pribadi GitHub. Untuk informasi selengkapnya tentang koneksi layanan, lihat Mengelola koneksi layanan.


repositoryName - Repositori
string. Wajib diisi. Nilai default: $(Build.Repository.Name).

Menentukan nama repositori GitHub tempat Anda akan membuat, mengedit, atau menghapus rilis GitHub.


action - Tindakan
string. Wajib diisi. Nilai yang diizinkan: create, edit, dan delete. Nilai default: create.

Menentukan jenis operasi rilis yang akan dilakukan. Tugas ini dapat membuat, mengedit, atau menghapus rilis GitHub.


target - Target
string. Diperlukan saat action = create || action = edit. Nilai default: $(Build.SourceVersion).

Menentukan SHA penerapan yang ingin Anda gunakan untuk membuat rilis GitHub, misalnya 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. Anda juga dapat menggunakan variabel, seperti $(myCommitSHA), di bidang ini.


tagSource - Sumber tag
string. Diperlukan saat action = create. Nilai yang diizinkan: gitTag (tag Git), userSpecifiedTag (Tag yang ditentukan pengguna). Nilai default: gitTag.

Menentukan tag yang ingin Anda gunakan untuk pembuatan rilis. Opsi secara gitTag otomatis menggunakan tag yang terkait dengan penerapan Git. userSpecifiedTag Gunakan opsi untuk menyediakan tag secara manual.


tagPattern - Pola Tag
string. Pilihan. Gunakan saat tagSource = gitTag.

Menentukan pola tag Git dengan menggunakan regex, misalnya release-v1.*. Rilis GitHub hanya akan dibuat untuk penerapan yang memiliki tag Git yang cocok.


tag - Tag
string. Diperlukan saat action = edit || action = delete || tagSource = userSpecifiedTag.

Menentukan tag yang ingin Anda gunakan saat membuat, mengedit, atau menghapus rilis. Anda juga dapat menggunakan variabel, seperti $(myTagName), di bidang ini.


title - Judul rilis
string. Pilihan. Gunakan saat action = create || action = edit.

Menentukan judul rilis GitHub. Jika dibiarkan kosong, tag akan digunakan sebagai judul rilis.


releaseNotesSource - Sumber catatan rilis
string. Pilihan. Gunakan saat action = create || action = edit. Nilai yang diizinkan: filePath (File catatan rilis), inline (Catatan rilis sebaris). Nilai default: filePath.

Menentukan deskripsi rilis GitHub. filePath Gunakan opsi (File catatan rilis) untuk menggunakan konten file sebagai catatan rilis. inline Gunakan opsi (Catatan rilis sebaris) untuk memasukkan catatan rilis secara manual


releaseNotesFilePath - Jalur file catatan rilis
string. Pilihan. Gunakan saat releaseNotesSource = filePath.

Menentukan file yang berisi catatan rilis.


releaseNotesInline - Catatan rilis
string. Pilihan. Gunakan saat releaseNotesSource = inline.

Menentukan catatan rilis. Markdown didukung.


assets - Aset
string. Pilihan. Gunakan saat action = create || action = edit. Nilai default: $(Build.ArtifactStagingDirectory)/*.

Menentukan file yang ingin Anda unggah sebagai aset rilis. Anda dapat menggunakan karakter kartubebas untuk menentukan beberapa file. Misalnya, gunakan $(Build.ArtifactStagingDirectory)/*.zip atau gunakan $(System.DefaultWorkingDirectory)/*.zip untuk alur rilis.

Anda juga dapat menentukan beberapa pola, satu per baris. Secara default, semua file dalam $(Build.ArtifactStagingDirectory) direktori akan diunggah. Untuk informasi selengkapnya tentang daftar variabel yang telah ditentukan sebelumnya yang tersedia, lihat variabel build dan variabel rilis.


assetUploadMode - Mode unggahan aset
string. Pilihan. Gunakan saat action = edit. Nilai yang diizinkan: delete (Hapus aset yang dikeluarkan), replace (Ganti aset yang ada). Nilai default: delete.

Menentukan mode unggah aset yang ingin Anda gunakan. delete Gunakan opsi (Hapus aset yang ada) untuk terlebih dahulu menghapus aset yang ada dalam rilis lalu unggah semua aset. replace Gunakan opsi (Ganti aset yang ada) untuk mengganti aset apa pun yang memiliki nama yang sama.


isDraft - Rilis draf
boolean. Opsional. Gunakan saat action = create || action = edit. Nilai default: false.

Menunjukkan apakah rilis harus disimpan sebagai draf (tidak diterbitkan). Jika false, rilis akan diterbitkan.


isPreRelease - Pra-rilis
boolean. Pilihan. Gunakan saat action = create || action = edit. Nilai default: false.

Menunjukkan apakah rilis harus ditandai sebagai pra-rilis.


addChangeLog - Menambahkan changelog
boolean. Pilihan. Gunakan saat action = create || action = edit. Nilai default: true.

Menentukan apakah Anda ingin menyertakan changelog. Jika diatur ke true, daftar perubahan (penerapan dan masalah) antara rilis saat ini dan rilis terakhir yang diterbitkan akan dihasilkan dan ditambahkan ke catatan rilis.


changeLogCompareToRelease - Bandingkan dengan
string. Diperlukan saat addChangeLog = true. Nilai yang diizinkan: lastFullRelease (Rilis lengkap terakhir), lastNonDraftRelease (Rilis non-draf terakhir), lastNonDraftReleaseByTag (Rilis non-draf terakhir menurut tag). Nilai default: lastFullRelease.

Menunjukkan rilis mana yang akan dibandingkan dengan untuk menghasilkan changelog:

  • lastFullRelease (Rilis lengkap terakhir): Membandingkan rilis saat ini dengan rilis non-draf terbaru yang tidak ditandai sebagai pra-rilis.
  • lastNonDraftRelease (Rilis non-draf terakhir): Membandingkan rilis saat ini dengan rilis non-draf terbaru.
  • lastNonDraftReleaseByTag (Rilis non-draf terakhir menurut tag): Membandingkan rilis saat ini dengan rilis non-draf terakhir yang cocok dengan tag yang ditentukan. Anda juga dapat menentukan regex alih-alih tag yang tepat.

changeLogCompareToReleaseTag - Tag Rilis
string. Diperlukan saat changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Menentukan regex untuk tag rilis. Rilis yang cocok dengan tag ini akan digunakan sebagai dasar untuk komputasi changelog.


changeLogType - Jenis changelog
string. Diperlukan saat addChangeLog = true. Nilai yang diizinkan: commitBased (Berbasis penerapan), issueBased (Berbasis masalah). Nilai default: commitBased.

Menentukan jenis changelog. Changelog dapat berbasis penerapan atau berbasis masalah. Changelog berbasis penerapan mencantumkan semua penerapan yang disertakan dalam rilis. Changelog berbasis masalah mencantumkan semua masalah atau permintaan pull (PR) yang disertakan dalam rilis.


changeLogLabels - Kategori
string. Pilihan. Gunakan saat changeLogType = issueBased && addChangeLog = true. Nilai default: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Mengategorikan perubahan berdasarkan label yang terkait dengan masalah atau PR. Untuk label, Anda dapat menyebutkan nama tampilan untuk kategori dan status masalah. Contoh label meliputi: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Dalam kasus di mana perubahan memiliki beberapa label di dalamnya, label pertama yang ditentukan akan diprioritaskan. Biarkan bidang ini kosong untuk melihat daftar datar masalah atau PR.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Gunakan tugas ini di alur Anda untuk membuat, mengedit, atau membuang rilis GitHub.

Koneksi layanan GitHub

Tugas ini memerlukan koneksi layanan GitHub dengan izin Tulis ke repositori GitHub. Anda dapat membuat koneksi layanan GitHub di proyek Azure Pipelines Anda. Setelah dibuat, gunakan nama koneksi layanan dalam pengaturan tugas ini.

Contoh

Membuat rilis GitHub

YAML berikut membuat rilis GitHub setiap kali tugas berjalan. Nomor build digunakan sebagai versi tag untuk rilis. Semua file .exe dan file README.txt di folder $(Build.ArtifactStagingDirectory) diunggah sebagai aset. Secara default, tugas ini juga menghasilkan log perubahan (daftar penerapan dan masalah yang merupakan bagian dari rilis ini) dan menerbitkannya sebagai catatan rilis.

- 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

Anda juga dapat mengontrol pembuatan rilis berdasarkan tag repositori. YAML berikut membuat rilis GitHub hanya ketika penerapan yang memicu alur memiliki tag Git yang terkait dengannya. Rilis GitHub dibuat dengan versi tag yang sama dengan tag Git terkait.

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

Anda mungkin juga ingin menggunakan tugas bersama dengan kondisi tugas untuk mendapatkan kontrol yang lebih baik ketika tugas berjalan, sehingga membatasi pembuatan rilis. Misalnya, dalam YAML berikut, tugas hanya berjalan ketika alur dipicu oleh tag Git yang cocok dengan pola 'refs/tags/release-v*'.

- 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

Mengedit rilis GitHub

YAML berikut memperbarui status rilis GitHub dari 'draf' menjadi 'diterbitkan'. Rilis yang akan diedit ditentukan oleh tag yang ditentukan.

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

Menghapus rilis GitHub

YAML berikut menghapus rilis GitHub. Rilis yang akan dihapus ditentukan oleh tag yang ditentukan.

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

Catatan rilis sebaris

YAML berikut membuat rilis GitHub dan menambahkan catatan rilis sebaris.

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

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 2.0.0 atau lebih tinggi
Kategori tugas Utilitas