Semantic-Release mengotomatiskan seluruh alur kerja rilis paket termasuk: menentukan nomor versi berikutnya, menghasilkan catatan rilis, dan menerbitkan paket.
Ini menghilangkan hubungan langsung antara emosi manusia dan nomor versi, secara ketat mengikuti spesifikasi versi semantik dan mengkomunikasikan dampak perubahan kepada konsumen.
Percayai kami, ini akan mengubah alur kerja Anda menjadi lebih baik. - Egghead.io
Rilis sepenuhnya otomatis
Menegakkan Spesifikasi Versi Semantik
Fitur dan perbaikan baru segera tersedia untuk pengguna
Beri tahu pengelola dan pengguna rilis baru
Gunakan konvensi pesan komit formal untuk mendokumentasikan perubahan dalam basis kode
Publikasikan di saluran distribusi yang berbeda (seperti npm dist-tag) berdasarkan git gabungan
Integrasi dengan alur kerja integrasi berkelanjutan Anda
Hindari kesalahan potensial yang terkait dengan rilis manual
Dukung semua manajer paket dan bahasa melalui plugin
Konfigurasi yang sederhana dan dapat digunakan kembali melalui konfigurasi yang dapat dibagikan
Dukungan untuk Paket Paket NPM yang mempromosikan peningkatan keamanan rantai pasokan melalui pengesahan yang ditandatangani tentang tindakan GitHub
Semantic-Release menggunakan pesan komit untuk menentukan dampak konsumen dari perubahan dalam basis kode. Mengikuti konvensi formal untuk pesan komit, semantic-rilis secara otomatis menentukan nomor versi semantik berikutnya, menghasilkan changelog dan menerbitkan rilis.
Secara default, Semantic-Release menggunakan konvensi pesan komit sudut. Format pesan komit dapat diubah dengan opsi preset
atau config
dari @semantik-pelepasan/komit-analyzer dan @semantik-pelepasan/rilis-notes-generator plugin.
Alat -alat seperti Commitizen atau CommitLint dapat digunakan untuk membantu kontributor dan menegakkan pesan komit yang valid.
Tabel di bawah ini menunjukkan pesan komit mana yang memberi Anda jenis rilis mana saat semantic-release
berjalan (menggunakan konfigurasi default):
Melakukan pesan | Jenis rilis |
---|---|
fix(pencil): stop graphite breaking when too much pressure applied | Rilis Perbaikan Patch |
feat(pencil): add 'graphiteWidth' option | Rilis fitur minor |
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reasons. | Rilis utama yang melanggar (Perhatikan bahwa BREAKING CHANGE: token harus berada di footer komit) |
Semantic-Release dimaksudkan untuk dieksekusi pada lingkungan CI setelah setiap pembangunan yang sukses di cabang rilis. Dengan cara ini tidak ada manusia yang terlibat langsung dalam proses pelepasan dan rilis dijamin tidak romantis dan tidak sentimental.
Untuk setiap komit baru yang ditambahkan ke salah satu cabang rilis (misalnya: master
, main
, next
, beta
), dengan git push
atau dengan menggabungkan permintaan tarik atau menggabungkan dari cabang lain, build CI dipicu dan menjalankan semantic-release
Perintah untuk membuat rilis jika ada perubahan basis kode sejak rilis terakhir yang mempengaruhi fungsionalitas paket.
Semantic-Release menawarkan berbagai cara untuk mengontrol waktu, konten, dan audiens rilis yang diterbitkan. Lihat contoh alur kerja dalam resep berikut:
Menggunakan saluran distribusi
Rilis pemeliharaan
Pra-rilis
Setelah menjalankan tes, perintah semantic-release
akan menjalankan langkah-langkah berikut:
Melangkah | Keterangan |
---|---|
Verifikasi kondisi | Verifikasi semua ketentuan untuk melanjutkan rilis. |
Dapatkan rilis terakhir | Dapatkan komit yang sesuai dengan rilis terakhir dengan menganalisis tag git. |
Menganalisis komit | Tentukan jenis rilis berdasarkan komitmen yang ditambahkan sejak rilis terakhir. |
Verifikasi rilis | Verifikasi kesesuaian rilis. |
Menghasilkan catatan | Hasilkan catatan rilis untuk komitmen yang ditambahkan sejak rilis terakhir. |
Buat tag git | Buat tag git yang sesuai dengan versi rilis baru. |
Mempersiapkan | Siapkan rilis. |
Menerbitkan | Publikasikan rilisnya. |
Memberitahu | Beri tahu rilis atau kesalahan baru. |
Untuk menggunakan rilis semantik yang Anda butuhkan:
Untuk meng -host kode Anda di repositori git
Gunakan layanan integrasi berkelanjutan yang memungkinkan Anda untuk mengatur kredensial dengan aman
Versi Git CLI yang memenuhi persyaratan versi kami yang diinstal di lingkungan integrasi berkelanjutan Anda
Versi Node.js yang memenuhi persyaratan versi kami yang diinstal di lingkungan integrasi berkelanjutan Anda
Penggunaan
Memulai
Instalasi
Konfigurasi CI
Konfigurasi
Plugin
Konfigurasi alur kerja
Konfigurasi yang dapat dibagikan
Memperpanjang
Plugin
Konfigurasi yang dapat dibagikan
Resep
Konfigurasi CI
Git Hosted Services
Rilis alur kerja
Panduan Pengembang
JavaScript API
Pengembangan Plugin
Pengembangan konfigurasi yang dapat dibagikan
Mendukung
Sumber daya
Pertanyaan yang sering diajukan
Pemecahan masalah
Persyaratan Versi Node
Kebijakan Dukungan Node
Diskusi GitHub
Stack overflow
Biarkan orang tahu bahwa paket Anda diterbitkan menggunakan semantik-rilis dan komit-komit mana yang diikuti oleh memasukkan lencana ini dalam readme Anda.
[! [Semantic-Release: Angular] (https://img.hields.io/badge/semantic--release-angular-e10079?logo=semantic-release)] (https://github.com/semantic-release /Semantic-Release)
![]() | ![]() | ![]() |
---|---|---|
Gregor Martynus | Pierre Vanduynslager | Matt Travi |
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
Stephan Bönnemann | Rolf Erik Lekang | Johannes Jörg Schmidt | Finn Pauls | Christoph Witzko |