Jadual Kandungan
Kawalan versi semantik
Perubahan versi utama (Major)
Perubahan versi kecil (kecil)
Perubahan versi patch
Hantar format maklumat
Hantar tajuk
Hantar nota kaki
Menguatkuasakan format maklumat penyerahan
Menjana dan menerbitkan
Hantarkan pesta!
Rumah hujung hadapan web tutorial css Cara mengautomasikan versi dan keluaran projek dengan penggunaan berterusan

Cara mengautomasikan versi dan keluaran projek dengan penggunaan berterusan

Apr 01, 2025 am 04:16 AM

Cara mengautomasikan versi dan keluaran projek dengan penggunaan berterusan

Menggunakan kawalan versi semantik boleh memudahkan untuk mengekalkan dan menyampaikan perubahan perisian, tetapi operasi manual adalah rumit. Walaupun anda secara manual menggabungkan PR, tandakan penyerahan dan menolak pelepasan, anda masih perlu menulis keterangan pelepasan. Terdapat banyak langkah, pengulangan yang tinggi, memakan masa dan intensif buruh.

Artikel ini akan menerangkan bagaimana untuk mencapai proses yang lebih cekap dan mengautomasikan proses pelepasan sepenuhnya dengan mengintegrasikan versi semantik ke dalam proses penempatan yang berterusan.

Kawalan versi semantik

Versi semantik adalah nombor versi yang terdiri daripada tiga nombor, seperti 1.4.10. Setiap nombor mempunyai makna tertentu:

Perubahan versi utama (Major)

Nombor pertama menunjukkan perubahan versi utama, yang bermaksud terdapat perubahan yang merosakkan.

Perubahan versi kecil (kecil)

Nombor kedua menunjukkan perubahan versi kecil, yang bermaksud bahawa ciri -ciri baru telah ditambah.

Perubahan versi patch

Nombor ketiga menunjukkan perubahan versi yang ditampal, yang bermaksud pepijat ditetapkan.

Versi semantik dapat difahami dengan lebih ringkas sebagai: perubahan merosakkan, perubahan fungsional, dan pembetulan pepijat. Keterangan ini lebih tepat dan mengelakkan kekaburan.

Hantar format maklumat

Untuk memastikan bahawa nombor versi semantik ditambah dengan betul dan versi yang betul dikeluarkan, format maklumat penyerahan standard diperlukan. Format maklumat penyerahan piawai membantu menentukan masa untuk meningkatkan nombor dan mudah menghasilkan arahan penerbitan. Di sini, sudut akan digunakan untuk mengemukakan konvensyen maklumat, dan sudah tentu ia juga boleh diubah seperti yang diperlukan.

Formatnya adalah seperti berikut:

<code></code>
Salin selepas log masuk

Setiap penyerahan mengandungi tajuk , badan , dan nota kaki .

Hantar tajuk

Tajuknya adalah suatu keharusan, ia mempunyai format khas termasuk jenis , skop pilihan dan topik .

Jenis tajuk adalah medan yang diperlukan untuk menggambarkan kesan penyerahan pada versi seterusnya. Ia mestilah salah satu jenis berikut:

  • Feat : Ciri -ciri Baru
  • Betulkan : Pembetulan pepijat
  • Dokumen : perubahan dokumen
  • Gaya : Perubahan yang tidak mempengaruhi makna kod (contohnya: ruang, format, titik titik tinggi, dll.)
  • Refactor : Refactoring kod, tidak menetapkan pepijat atau menambah fungsi
  • Perf : Penambahbaikan Prestasi
  • ujian : tambah atau ujian betul
  • Kerja : Perubahan untuk membina proses atau alat bantu dan perpustakaan, seperti menjana dokumen

Skop adalah harta pengumpulan yang menentukan subsistem yang mengemukakan yang berkaitan dengan subsistem, seperti API, papan pemuka aplikasi, atau akaun pengguna, dan lain -lain. Jika beberapa subsistem diubahsuai oleh komit, asterisk (*) boleh digunakan sebaliknya.

Topik tajuk harus menerangkan secara ringkas perubahan yang dibuat. Peraturan berikut diperlukan semasa menulis topik:

  • Gunakan ayat -ayat yang penting, tegang sekarang (mis., "Berubah" dan bukannya "berubah" atau "berubah").
  • Huruf kecil huruf awal.
  • Tiada tempoh (.) Ditambah pada akhir.
  • Elakkan panjang topik melebihi 80 aksara. Hantar badan.

Seperti tema tajuk, teks utama juga harus menggunakan ayat -ayat yang penting, tegang sekarang. Ia harus termasuk motivasi untuk perubahan dan membandingkannya dengan tingkah laku sebelumnya.

Hantar nota kaki

Nota kaki harus mengandungi sebarang maklumat mengenai perubahan yang merosakkan dan juga di mana soalan yang disebutkan untuk penyerahan ini ditutup.

Maklumat perubahan yang merosakkan harus bermula dengan perubahan pecah: diikuti dengan ruang atau dua baris baru. Maklumat penyerahan yang tersisa di sini.

Menguatkuasakan format maklumat penyerahan

Dalam kerja berpasukan, menyeragamkan apa sahaja yang perlu diikuti oleh semua orang adalah sentiasa menjadi cabaran. Untuk memastikan semua orang menggunakan kriteria penyerahan yang sama, kami akan menggunakan Commitizen.

Commitizen adalah alat baris arahan yang memudahkan proses menggunakan format mesej komit yang konsisten. Membuat repositori yang serasi dengan Commitizen bermakna sesiapa di dalam pasukan boleh menjalankan Git CZ dan mendapatkan arahan terperinci untuk mengisi maklumat penyerahan.

Menjana dan menerbitkan

Sekarang kita tahu bahawa penyerahan kami mengikuti piawaian yang konsisten, kita boleh mula menghasilkan siaran dan nota pelepasan. Untuk melakukan ini, kami akan menggunakan pakej yang dipanggil Semantik-Release. Ini adalah pakej yang diselenggarakan dengan baik untuk pelbagai platform integrasi berterusan (CI).

Pelepasan semantik adalah kunci kepada perjalanan kami, kerana ia akan melaksanakan semua langkah yang diperlukan untuk dibebaskan, termasuk:

  1. Sahkan versi terakhir yang anda keluarkan
  2. Tentukan jenis penerbitan berdasarkan penyerahan yang ditambahkan sejak pelepasan terakhir
  3. Menjana arahan penerbitan untuk penyerahan yang ditambahkan sejak pelepasan terakhir
  4. Kemas kini fail Package.json dan buat tag git yang sepadan dengan versi yang baru dikeluarkan
  5. Tolak versi baru

Mana -mana CI ok. Dalam artikel ini, kami menggunakan tindakan GitHub kerana saya suka menggunakan ciri-ciri platform yang sedia ada sebelum mencari penyelesaian pihak ketiga.

Terdapat banyak cara untuk memasang pelepasan semantik, tetapi kami akan menggunakan semantik-release-cli kerana ia menyediakan operasi langkah demi langkah. Mari kita jalankan persediaan NPX semantik-release-cli di terminal dan isi wizard interaktif.

Skrip akan melakukan perkara berikut:

  • Jalankan NPM AddUser dengan maklumat NPM yang disediakan untuk menjana .NPMRC.
  • Buat token akses peribadi GitHub.
  • Kemas kini Package.json.

Sebaik sahaja CLI selesai, ia menambah pelepasan semantik ke Package.json, tetapi ia tidak akan memasangnya. Jalankan NPM Pasang untuk memasangnya dan kebergantungan projek lain.

Satu -satunya perkara yang tersisa ialah mengkonfigurasi CI melalui tindakan GitHub. Kita perlu menambah aliran kerja secara manual yang akan menjalankan pelepasan semantik. Mari buat aliran kerja penerbitan dalam .github/aliran kerja/pelepasan.yml.

 <code>name: Release on: push: branches: - main jobs: release: name: Release runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 12 - name: Install dependencies run: npm ci - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If you need an NPM release, you can add the NPM_TOKEN # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npm run release</code>
Salin selepas log masuk

Steffen Brewersdorff telah melakukan kerja yang baik untuk memperkenalkan CI dengan tindakan GitHub, tetapi mari kita mengkaji secara ringkas apa yang berlaku di sini.

Ini akan menunggu dorongan ke cawangan utama berlaku sebelum saluran paip dijalankan. Anda boleh menukar tetapan ini seperti yang anda suka untuk menjalankan satu, dua, atau semua cawangan.

 <code>on: push: branches: - main</code>
Salin selepas log masuk

Ia kemudian menggunakan checkout untuk menarik repositori dan memasang nod supaya NPM boleh digunakan untuk memasang kebergantungan projek. Jika ini adalah sesuatu yang anda suka, anda boleh menambah langkah ujian.

 <code>- name: Checkout uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 12 - name: Install dependencies run: npm ci # You can add a test step here # - name: Run Tests # run: npm test</code>
Salin selepas log masuk

Akhirnya, biarkan pelepasan semantik melakukan semua operasi ajaib:

 <code>- name: Release run: npm run release</code>
Salin selepas log masuk

Tekan perubahan dan lihat tindakan:

Sekarang, setiap kali cawangan tertentu dilakukan (atau digabungkan), operasi dijalankan dan diterbitkan dengan nota pelepasan.

Hantarkan pesta!

Kami telah berjaya mencipta aliran kerja pelepasan semantik CI/CD! Bukankah itu menyakitkan? Persediaannya agak mudah, dan tidak ada kelemahan untuk mempunyai aliran kerja penerbitan semantik. Ia hanya membuat perubahan penjejakan lebih mudah.

Release Semantik Terdapat banyak pemalam yang boleh membolehkan automasi yang lebih maju. Sebagai contoh, terdapat juga bot pelepasan kendur yang boleh diterbitkan ke saluran projek selepas projek itu berjaya digunakan. Tidak perlu pergi ke GitHub untuk mencari kemas kini!

Atas ialah kandungan terperinci Cara mengautomasikan versi dan keluaran projek dengan penggunaan berterusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Apr 02, 2025 pm 06:17 PM

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That &#039; s seperti ini.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Apr 02, 2025 am 04:27 AM

Jika kita perlu menunjukkan dokumentasi kepada pengguna secara langsung dalam editor WordPress, apakah cara terbaik untuk melakukannya?

Membandingkan penyemak imbas untuk reka bentuk responsif Membandingkan penyemak imbas untuk reka bentuk responsif Apr 02, 2025 pm 06:25 PM

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Apr 05, 2025 pm 05:51 PM

Soalan mengenai kawasan slash ungu dalam susun atur flex Apabila menggunakan susun atur flex, anda mungkin menghadapi beberapa fenomena yang mengelirukan, seperti dalam alat pemaju (D ...

Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Apr 05, 2025 pm 11:24 PM

Apabila bilangan elemen tidak ditetapkan, bagaimana untuk memilih elemen anak pertama nama kelas yang ditentukan melalui CSS. Semasa memproses struktur HTML, anda sering menghadapi unsur yang berbeza ...

See all articles