Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan tugas ini untuk membuat, mengedit, atau menghapus rilis GitHub.
Sintaksis
# 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.
#makeLatest: 'true' # 'true' | 'false' | 'legacy'. Optional. Use when action = create || action = edit. Make Latest. Default: true.
#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" }].
# 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" }].
Masukan
koneksi GitHub (OAuth atau PAT) gitHubConnection -
string. Dibutuhkan.
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.
Repositori repositoryName -
string. Dibutuhkan. Nilai default: $(Build.Repository.Name).
Menentukan nama repositori GitHub tempat Anda akan membuat, mengedit, atau menghapus rilis GitHub.
Tindakan action -
string. Dibutuhkan. Nilai yang diizinkan: create, edit, 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 atau nama cabang yang ingin Anda gunakan untuk membuat rilis GitHub, misalnya 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 atau main. Anda juga dapat menggunakan variabel, seperti $(myCommitSHA), di bidang ini.
sumber tag tagSource -
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 gitTag secara otomatis menggunakan tag yang terkait dengan penerapan Git. Gunakan opsi userSpecifiedTag untuk menyediakan tag secara manual.
Pola Tag tagPattern -
string. Fakultatif. Gunakan saat tagSource = gitTag.
Menentukan pola tag Git dengan menggunakan regex, misalnya release-v1.*. Rilis GitHub akan dibuat hanya untuk penerapan yang memiliki tag Git yang cocok.
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.
judul Rilis title -
string. Fakultatif. Gunakan saat action = create || action = edit.
Menentukan judul rilis GitHub. Jika dibiarkan kosong, tag akan digunakan sebagai judul rilis.
releaseNotesSource
-
Sumber catatan rilis
string. Fakultatif. Gunakan saat action = create || action = edit. Nilai yang diizinkan: filePath (File catatan rilis), inline (Catatan rilis sebaris). Nilai default: filePath.
Menentukan deskripsi rilis GitHub. Gunakan opsi filePath (File catatan rilis) untuk menggunakan konten file sebagai catatan rilis. Gunakan opsi inline (Catatan rilis sebaris) untuk memasukkan catatan rilis secara manual
releaseNotesFilePath
-
Jalur file Catatan rilis
string. Fakultatif. Gunakan saat releaseNotesSource = filePath.
Menentukan file yang berisi catatan rilis.
Catatan rilis releaseNotesInline -
string. Fakultatif. Gunakan saat releaseNotesSource = inline.
Menentukan catatan rilis. Markdown didukung.
Aset assets -
string. Fakultatif. 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 direktori $(Build.ArtifactStagingDirectory) akan diunggah. Untuk informasi selengkapnya tentang daftar variabel yang telah ditentukan sebelumnya yang tersedia, lihat variabel build dan variabel rilis .
mode unggahan Aset assetUploadMode -
string. Fakultatif. Gunakan saat action = edit. Nilai yang diizinkan: delete (Hapus aset yang dikeluarkan), replace (Ganti aset yang ada). Nilai default: delete.
Menentukan mode unggahan aset yang ingin Anda gunakan. Gunakan opsi delete (Hapus aset yang ada) untuk terlebih dahulu menghapus aset yang ada dalam rilis lalu unggah semua aset. Gunakan opsi replace (Ganti aset yang ada) untuk mengganti aset apa pun yang memiliki nama yang sama.
rilis Draf isDraft -
boolean. Fakultatif. 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. Fakultatif. Gunakan saat action = create || action = edit. Nilai default: false.
Menunjukkan apakah rilis harus ditandai sebagai pra-rilis.
makeLatest
-
Buat Terbaru
string. Fakultatif. Gunakan saat action = create || action = edit. Nilai yang diizinkan: true, false, legacy. Nilai default: true.
Tentukan apakah akan menetapkan rilis ini sebagai rilis 'terbaru' untuk repositori. Atur ke 'false' untuk mencegah menandai rilis ini sebagai terbaru, atau 'warisan' untuk menggunakan penentuan rilis terbaru lama GitHub berdasarkan tanggal pembuatan dan versi semantik.
addChangeLog
-
Tambahkan changelog
boolean. Fakultatif. 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 dibuat 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.
Tag Rilis changeLogCompareToReleaseTag -
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.
jenis changelog changeLogType -
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.
Kategori changeLogLabels -
string. Fakultatif. 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 atasnya, 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 tugasnya. Untuk informasi selengkapnya, lihat opsi Kontrol dan properti tugas umum.
Variabel output
Tidak ada.
Komentar
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: gitTag
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 |
| Kemampuan |
Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
| pembatasan Perintah |
Apapun |
| variabel yang Dapat Diatur |
Apapun |
| Versi agen | 2.0.0 atau lebih tinggi |
| Kategori tugas | Utilitas |