plugin rilis semantik untuk menerbitkan rilis GitLab.
Melangkah | Keterangan |
---|---|
verifyConditions | Verifikasi keberadaan dan validitas otentikasi (ditetapkan melalui variabel lingkungan). |
publish | Publikasikan rilis GitLab. |
success | Tambahkan komentar pada setiap Masalah GitLab atau Permintaan Penggabungan yang diselesaikan pada rilis. |
fail | Buka atau perbarui Masalah GitLab dengan informasi tentang kesalahan yang menyebabkan kegagalan rilis. |
$ npm install @semantic-release/gitlab -D
Plugin ini dapat dikonfigurasi dalam file konfigurasi rilis semantik :
{
"branches" : [ " main " ],
"plugins" : [
" @semantic-release/commit-analyzer " ,
" @semantic-release/release-notes-generator " ,
[
" @semantic-release/gitlab " ,
{
"gitlabUrl" : " https://custom.gitlab.com " ,
"assets" : [
{ "path" : " dist/asset.min.css " , "label" : " CSS distribution " },
{ "path" : " dist/asset.min.js " , "label" : " JS distribution " , "target" : " generic_package " },
{ "path" : " dist/asset.min.js " , "label" : " v${nextRelease.version}.js " },
{ "url" : " https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md " }
]
}
]
]
}
Dengan contoh ini, rilis GitLab akan dipublikasikan ke instance https://custom.gitlab.com
.
Konfigurasi autentikasi GitLab diperlukan dan dapat diatur melalui variabel lingkungan.
Buat token akses proyek, token akses grup, atau token akses pribadi dengan peran Pengembang (atau lebih tinggi) dan cakupan api
dan sediakan di lingkungan CI Anda melalui variabel lingkungan GL_TOKEN
. Jika Anda menggunakan GL_TOKEN
sebagai otentikasi repositori Git jarak jauh, ia juga harus memiliki cakupan write_repository
.
Catatan : Saat menjalankan dengan dryRun
hanya cakupan read_repository
yang diperlukan.
Variabel | Keterangan |
---|---|
GL_TOKEN atau GITLAB_TOKEN | Diperlukan. Token yang digunakan untuk mengautentikasi dengan GitLab. |
GL_URL atau GITLAB_URL | Titik akhir GitLab. |
GL_PREFIX atau GITLAB_PREFIX | Awalan API GitLab. |
HTTP_PROXY atau HTTPS_PROXY | Proksi HTTP atau HTTPS untuk digunakan. |
NO_PROXY | Pola yang proksinya harus diabaikan. Lihat detailnya di bawah. |
Plugin ini mendukung penyampaian permintaan melalui server proxy.
Anda dapat mengonfigurasi server proksi melalui variabel lingkungan HTTPS_PROXY
: HTTPS_PROXY=http://proxyurl.com:8080
Jika server proxy Anda memerlukan otentikasi, masukkan nama pengguna dan kata sandi di URL: HTTPS_PROXY=http://user:[email protected]:8080
Jika instance GitLab Anda diekspos melalui HTTP biasa (tidak disarankan!) gunakan HTTP_PROXY
sebagai gantinya.
Jika Anda perlu melewati proxy untuk beberapa host, konfigurasikan variabel lingkungan NO_PROXY
: NO_PROXY=*.host.com, host.com
Pilihan | Keterangan | Bawaan |
---|---|---|
gitlabUrl | Titik akhir GitLab. | Variabel lingkungan GL_URL atau GITLAB_URL atau variabel lingkungan yang disediakan CI jika dijalankan di GitLab CI/CD atau https://gitlab.com . |
gitlabApiPathPrefix | Awalan API GitLab. | Variabel lingkungan GL_PREFIX atau GITLAB_PREFIX atau CI menyediakan variabel lingkungan jika berjalan di GitLab CI/CD atau /api/v4 . |
assets | Serangkaian file untuk diunggah ke rilis. Lihat aset. | - |
milestones | Serangkaian judul pencapaian untuk dikaitkan dengan rilis. Lihat API Rilis GitLab. | - |
successComment | Komentar untuk ditambahkan ke setiap Masalah dan Permintaan Penggabungan diselesaikan pada rilis. Lihat komentar sukses. | ? Masalah ini telah diatasi dalam versi ${nextRelease.version} ?nnRilis tersedia di rilis GitLab |
successCommentCondition | Gunakan ini sebagai syarat, kapan harus mengomentari masalah atau menggabungkan permintaan. Lihat suksesCommentCondition. | - |
failComment | Isi masalah yang muncul ketika rilis gagal. Lihat failComment. | Pesan ramah dengan tautan ke dokumentasi dan dukungan rilis semantik , dengan daftar kesalahan yang menyebabkan kegagalan rilis. |
failTitle | Judul masalah yang muncul ketika rilis gagal. | The automated release is failing |
failCommentCondition | Gunakan ini sebagai syarat kapan harus mengomentari atau membuat masalah jika terjadi kegagalan. Lihat failCommentCondition. | - |
labels | Label yang akan ditambahkan ke masalah yang terjadi ketika rilis gagal. Setel ke false untuk tidak menambahkan label apa pun. Label harus dipisahkan dengan koma seperti yang dijelaskan dalam dokumen resmi, misalnya "semantic-release,bot" . | semantic-release |
assignee | Penerima tugas untuk menambahkan masalah yang dibuat ketika rilis gagal. | - |
Dapat berupa glob atau dan Array
of globs dan Object
dengan properti berikut:
Milik | Keterangan | Bawaan |
---|---|---|
path | Diperlukan , kecuali url disetel. Gumpalan untuk mengidentifikasi file yang akan diunggah. Mendukung templat Lodash. | - |
url | Alternatif untuk pengaturan path ini memberikan kemampuan untuk menambahkan tautan ke rilis, misalnya URL ke gambar kontainer. Mendukung templat Lodash. | - |
label | Deskripsi singkat tentang file yang ditampilkan pada rilis GitLab. Diabaikan jika path cocok dengan lebih dari satu file. Mendukung templat Lodash. | Nama file diekstraksi dari path . |
type | Jenis aset ditampilkan pada rilis GitLab. Dapat berupa runbook , package , image dan other (lihat dokumen resmi tentang aset rilis). Mendukung templat Lodash. | other |
filepath | Jalur file untuk membuat tautan permanen yang menunjuk ke aset (memerlukan GitLab 12.9+, lihat dokumen resmi tentang tautan permanen). Diabaikan jika path cocok dengan lebih dari satu file. Mendukung templat Lodash. | - |
target | Mengontrol ke mana file diunggah. Dapat diatur ke project_upload untuk menyimpan file sebagai unggahan proyek atau generic_package untuk menyimpan file sebagai paket generik. | project_upload |
status | Ini hanya diterapkan, jika target disetel ke generic_package . Status paket generik. Bisa default dan hidden (lihat dokumen resmi pada paket generik). | default |
Setiap entri dalam Array
assets
dikelompokkan satu per satu. Gumpalan bisa berupa String
( "dist/**/*.js"
atau "dist/mylib.js"
) atau Array
String
yang akan digabungkan bersama ( ["dist/**", "!**/*.css"]
).
Jika suatu direktori dikonfigurasi, semua file di bawah direktori ini dan anak-anaknya akan disertakan.
Catatan : Jika suatu file memiliki kecocokan dalam assets
maka file tersebut akan disertakan meskipun file tersebut juga memiliki kecocokan dalam .gitignore
.
'dist/*.js'
: sertakan semua file js
di direktori dist
, tetapi tidak di subdirektorinya.
[['dist', '!**/*.css']]
: menyertakan semua file di direktori dist
dan subdirektorinya kecuali file css
.
[{path: 'dist/MyLibrary.js', label: 'MyLibrary JS distribution'}, {path: 'dist/MyLibrary.css', label: 'MyLibrary CSS distribution'}]
: sertakan dist/MyLibrary.js
dan dist/MyLibrary.css
, dan beri label pada MyLibrary JS distribution
dan MyLibrary CSS distribution
dalam rilis GitLab.
[['dist/**/*.{js,css}', '!**/*.min.*'], {path: 'build/MyLibrary.zip', label: 'MyLibrary'}]
: sertakan semua file js
dan css
di direktori dist
dan subdirektorinya tidak termasuk versi yang diperkecil, ditambah file build/MyLibrary.zip
dan diberi label MyLibrary
di rilis GitLab.
Pesan untuk komentar masalah dibuat dengan template Lodash. Variabel berikut tersedia:
Parameter | Keterangan |
---|---|
branch | Object dengan properti name , type , channel , range dan prerelease dari cabang tempat rilis dilakukan. |
lastRelease | Object dengan version , channel , gitTag dan gitHead dari rilis terakhir. |
nextRelease | Object dengan version , channel , gitTag , gitHead dan notes rilis sedang diselesaikan. |
commits | Array komit Object dengan hash , subject , body message , dan author . |
releases | Array dengan rilis Object untuk setiap rilis yang diterbitkan, dengan data rilis opsional seperti name dan url . |
issue | Objek Masalah API GitLab tempat komentar akan diposting, atau false saat mengomentari Permintaan Penggabungan. |
mergeRequest | Objek Permintaan Penggabungan API GitLab tempat komentar akan diposting, atau false saat mengomentari Masalah. |
Kondisi komentar sukses dihasilkan dengan template Lodash. Variabel berikut tersedia:
Parameter | Keterangan |
---|---|
branch | Object dengan properti name , type , channel , range dan prerelease dari cabang tempat rilis dilakukan. |
lastRelease | Object dengan version , channel , gitTag dan gitHead dari rilis terakhir. |
nextRelease | Object dengan version , channel , gitTag , gitHead dan notes rilis sedang diselesaikan. |
commits | Array komit Object dengan hash , subject , body message , dan author . |
releases | Array dengan rilis Object untuk setiap rilis yang diterbitkan, dengan data rilis opsional seperti name dan url . |
issue | Objek Masalah API GitLab tempat komentar akan diposting. |
mergeRequest | Objek Permintaan Penggabungan API GitLab tempat komentar akan diposting. |
false
atau templating: "<% return false; %>"
"<% return issue %>"
"<% return mergeRequest %>"
"<% return issue.labels?.includes('semantic-release-relevant') %>"
periksa objek Permintaan Penggabungan API GitLab atau objek Masalah API GitLab untuk properti yang dapat digunakan untuk filter
Pesan untuk konten masalah dibuat dengan template Lodash. Variabel berikut tersedia:
Parameter | Keterangan |
---|---|
branch | Cabang tempat rilis gagal. |
errors | Array SemanticReleaseError. Setiap kesalahan memiliki properti message , code , pluginName dan details .pluginName berisi nama paket plugin yang menimbulkan kesalahan.details berisi informasi tentang kesalahan yang diformat dalam penurunan harga. |
failComment
This release from branch ${branch.name} had failed due to the following errors:n- ${errors.map(err => err.message).join('\n- ')}
akan menghasilkan komentar:
Rilis dari master cabang ini gagal karena kesalahan berikut:
- Pesan kesalahan 1
- Pesan kesalahan 2
Kondisi komentar gagal dihasilkan dengan template Lodash. Variabel berikut tersedia:
Parameter | Keterangan |
---|---|
branch | Object dengan properti name , type , channel , range dan prerelease dari cabang tempat rilis dilakukan. |
lastRelease | Object dengan version , channel , gitTag dan gitHead dari rilis terakhir. |
nextRelease | Object dengan version , channel , gitTag , gitHead dan notes rilis sedang diselesaikan. |
commits | Array komit Object dengan hash , subject , body message , dan author . |
releases | Array dengan rilis Object untuk setiap rilis yang diterbitkan, dengan data rilis opsional seperti name dan url . |
issue | Objek Masalah API GitLab tempat komentar akan diposting - hanya tersedia jika ada masalah terbuka. |
false
atau templating: "<% return false; %>"
"<% return branch.name === 'main' %>"
wip
: "<% return !issue.labels?.includes('wip') %>"
periksa objek GitLab API Issue untuk properti yang dapat digunakan untuk filter
Versi terbaru plugin ini kompatibel dengan semua versi GitLab yang saat ini didukung, yaitu versi utama saat ini dan dua versi utama sebelumnya. Plugin ini tidak dijamin berfungsi dengan versi GitLab yang tidak didukung.
Jika Anda menggunakan GitLab.com atau telah meningkatkan versi GitLab yang dihosting sendiri ke 14.0, harap gunakan versi >=6.0.7
plugin ini.
Di GitLab 14.0, pembuatan rilis menggunakan API Tags telah dihapus (lihat # 290311). Plugin ini telah diperbarui untuk menggunakan Releases API di #184, yang tersedia di versi 6.0.7
dan seterusnya.