Jadual Kandungan
Mulakan tetapan
Mengintegrasikan CircleCi
Bola
Aliran kerja
Operasi
Muat naik liputan kod kami ke coveralls
Menyatukan semuanya
Rumah hujung hadapan web tutorial css Persediaan integrasi dan penempatan yang berterusan dengan CircleCi dan Coveralls

Persediaan integrasi dan penempatan yang berterusan dengan CircleCi dan Coveralls

Mar 31, 2025 pm 02:31 PM

Persediaan integrasi dan penempatan yang berterusan dengan CircleCi dan Coveralls

Integrasi berterusan (CI) dan penempatan berterusan (CD) adalah amalan pembangunan penting, terutamanya untuk pasukan. Terlepas dari saiz projek, kesilapan terdedah kepada berlaku. Walau bagaimanapun, jika proses CI/CD dengan ujian yang baik ditubuhkan, lebih mudah untuk mengesan dan menetapkan kesilapan ini.

Artikel ini akan menerangkan cara menyemak liputan ujian, menyediakan proses CI/CD menggunakan CircleCi dan Coveralls, dan menggunakan aplikasi VUE ke Heroku. Walaupun anda tidak menggunakan alat ini, konsep yang dibentangkan dalam artikel ini masih berguna untuk persediaan anda. Sebagai contoh, VUE boleh digantikan dengan kerangka JavaScript yang lain, dan prinsip -prinsip asas masih berlaku.

Sebelum anda memulakan, pelajari beberapa istilah:

  • Integrasi Berterusan: Pemaju sering menghantar kod, melaksanakan pelbagai ujian dan membina proses sebelum menggabungkan atau menggunakan.
  • Penyebaran berterusan: Amalan yang menjadikan perisian sentiasa digunakan untuk persekitaran pengeluaran.
  • Liputan Ujian: Langkah yang digunakan untuk menggambarkan tahap ujian perisian. Satu program yang mempunyai liputan yang tinggi bermakna kebanyakan kod telah diuji.

Untuk memanfaatkan tutorial ini, anda harus memenuhi syarat -syarat berikut:

  • Akaun CIRCLECI: Kami akan menggunakan CircleCi, platform CI/CD untuk penggunaan automatik (termasuk aplikasi ujian dan bangunan sebelum penggunaan).
  • Akaun GitHub: Kami akan menyimpan projek dan ujian mereka di repositori.
  • Akaun Heroku: Kami akan menggunakan platform Heroku untuk menggunakan dan memperluaskan aplikasi.
  • Akaun Coveralls: Coveralls adalah platform untuk merakam dan memaparkan liputan kod.
  • NYC: Kami akan menggunakan pakej ini untuk memeriksa liputan kod.

Repositori yang mengandungi contoh -contoh dalam artikel ini boleh didapati di GitHub.

Mulakan tetapan

Pertama, pasang NYC dalam folder Projek:

 <code>npm i nyc</code>
Salin selepas log masuk

Seterusnya, kita perlu mengedit skrip dalam package.json untuk memeriksa liputan ujian. Jika kita cuba menyemak liputan semasa menjalankan ujian unit, kita perlu mengedit skrip ujian:

 <code>"scripts": { "test:unit": "nyc vue-cli-service test:unit", },</code>
Salin selepas log masuk

Perintah ini mengandaikan bahawa kami menggunakan VUE untuk membina aplikasi dengan merujuk kepada vue-cli-service . Perintah ini perlu ditukar untuk mencerminkan rangka kerja yang digunakan dalam projek.

Jika kita cuba menyemak liputan secara berasingan, kita perlu menambah baris lain ke skrip:

 <code>"scripts": { "test:unit": "nyc vue-cli-service test:unit", "coverage": "nyc npm run test:unit" },</code>
Salin selepas log masuk

Sekarang kita boleh menyemak liputan menggunakan arahan terminal:

 <code>npm run coverage</code>
Salin selepas log masuk

Seterusnya, kami akan memasang coveralls, yang bertanggungjawab untuk melaporkan dan memaparkan liputan:

 <code>npm i coveralls</code>
Salin selepas log masuk

Sekarang, kita perlu menambah coveralls sebagai skrip lain dalam package.json . Skrip ini membantu kami menyimpan laporan liputan ujian ke coveralls.

 <code>"scripts": { "test:unit": "nyc vue-cli-service test:unit", "coverage": "nyc npm run test:unit", "coveralls": "nyc report --reporter=text-lcov | coveralls" },</code>
Salin selepas log masuk

Mari pergi ke papan pemuka Heroku dan daftar aplikasi kami di sana. Kami akan menggunakan Heroku untuk menjadi tuan rumah.

Kami akan menggunakan CircleCi untuk mengautomasikan proses CI/CD kami. Teruskan melawat papan pemuka CircleCi untuk menubuhkan projek kami.

Kami boleh menavigasi ke projek kami melalui tab Projek di sidebar CircleCi, di mana kami harus melihat senarai projek dalam organisasi GitHub kami. Klik butang set Projek. Ini akan membawa kami ke halaman baru yang bertanya sama ada kami mahu menggunakan konfigurasi yang ada. Kami mempunyai konfigurasi kita sendiri, jadi mari kita pilih pilihan "Gunakan Konfigurasi Sedia Ada".

Selepas itu, kami akan pergi ke saluran paip yang dipilih. Sangat bagus! Kami telah melakukan kerja menyambungkan repositori kami ke CircleCi. Sekarang, mari tambahkan pembolehubah persekitaran kita ke projek CircleCi kami.

Untuk menambah pembolehubah, kita perlu menavigasi ke tetapan projek.

Tetapan projek mempunyai tab Pembolehubah Alam Sekitar di bar sisi. Di sinilah kita mahu menyimpan pembolehubah.

Pembolehubah yang diperlukan untuk tutorial ini:

  • Nama Aplikasi Heroku: HEROKU_APP_NAME
  • Kunci API Heroku kami: HEROKU_API_KEY
  • Token repositori coveralls: COVERALLS_REPO_TOKEN

Kunci API Heroku boleh didapati di bahagian akaun papan pemuka Heroku.

Token repositori coveralls terletak di dalam akaun coveralls repositori. Pertama, kita perlu menambah repositori ke coveralls dengan memilih repositori GitHub dari senarai repositori yang ada.

Sekarang kami telah menambah repositori ke coveralls. Kita boleh mendapatkan tanda repositori dengan mengklik pada repositori.

Mengintegrasikan CircleCi

Kami telah menghubungkan Circle Ci ke repositori GitHub kami. Ini bermakna bahawa CircleCi akan diberitahu apabila perubahan atau tindakan berlaku di repositori GitHub. Apa yang perlu kita lakukan sekarang ialah melakukan langkah -langkah untuk memaklumkan CircleCi tentang tindakan yang kita mahu ia dijalankan selepas mengesan perubahan repositori.

Dalam folder root projek tempatan, mari buat folder yang dipanggil .circleci dan buat fail yang dipanggil config.yml di dalamnya. Di sinilah semua operasi CircleCi terletak.

Berikut adalah kod yang terkandung dalam fail:

 Versi: 2.1
Orbs:
  nod: circleCi/[dilindungi e -mel] # node orb
  Heroku: CircleCi/[dilindungi e -mel] # heroku orb
  coveralls: coveralls/[dilindungi e -mel] # coveralls orb
Aliran Kerja:
  Heroku_deploy:
    Pekerjaan:
      - membina
      -Heroku/Deploy-Via-Git: # Gunakan keperluan pekerjaan yang telah dikonfigurasikan:
          - membina
        Penapis:
          Cawangan:
            Hanya: Guru
Pekerjaan:
  Membina:
    Docker:
      - Imej: CircleCi/Node: 10.16.0
    Langkah:
      - checkout
      - memulihkan_cache:
        Key: Dependency-Cache-{{checksum "Package.json"}}
      - lari:
        Nama: Install-Npm-Dependencies
        Perintah: NPM Pasang
      - SAVE_CACHE:
        Key: Dependency-Cache-{{checksum "Package.json"}}
        Laluan:
          - ./node_modules
      - Jalankan: # Jalankan Nama Ujian: Ujian
        Perintah: Ujian Jalan NPM: Unit
      - Jalankan: # Run Code Liputan Laporan Nama: Pelindung Kod
        Perintah: NPM Run Coveralls
      - Run: # Run Build Name: Build
        Perintah: NPM Run Build
      # - coveralls/muat naik
Salin selepas log masuk

Ini adalah sekeping kod yang besar. Mari kita pecahkan sehingga kita tahu apa yang dilakukannya.

Bola

 Orbs:
  nod: circleCi/[dilindungi e -mel] # node orb
  Heroku: CircleCi/[dilindungi e -mel] # heroku orb
  coveralls: coveralls/[dilindungi e -mel] # coveralls orb
Salin selepas log masuk

Orbs adalah pakej sumber terbuka yang memudahkan integrasi perisian dan pakej merentasi projek. Dalam kod kami, kami menunjukkan bola untuk proses CI/CD. Kami merujuk Node Orb kerana kami menggunakan JavaScript. Kami memetik Heroku kerana kami menggunakan aliran kerja Heroku untuk penggunaan automatik. Akhirnya, kami merujuk perlindungan Orb kerana kami merancang untuk menghantar hasil liputan kepada coveralls.

Heroku dan orbs coverall adalah bola luaran. Jadi jika kita menjalankan aplikasi sekarang melalui ujian, ini akan mencetuskan kesilapan. Untuk menghapuskan kesilapan, kita perlu menavigasi ke halaman Tetapan Organisasi dalam akaun CircleCi kami.

Kemudian, mari kita menavigasi ke tab Keselamatan dan biarkan bola tidak sah:

Aliran kerja

 Aliran Kerja:
  Heroku_deploy:
    Pekerjaan:
      - membina
      -Heroku/Deploy-Via-Git: # Gunakan keperluan pekerjaan yang telah dikonfigurasikan:
          - membina
        Penapis:
          Cawangan:
            Hanya: Guru
Salin selepas log masuk

Aliran kerja digunakan untuk menentukan koleksi pekerjaan dan menjalankannya secara berurutan. Bahagian kod ini bertanggungjawab untuk hosting automatik. Ia memberitahu CircleCi untuk membina projek itu dan kemudian menggunakannya. requires cara kerja heroku/deploy-via-git perlu dibina-lengkap-bermakna ia akan menunggu binaan selesai sebelum penggunaan.

Operasi

 Pekerjaan:
  Membina:
    Docker:
      - Imej: CircleCi/Node: 10.16.0
    Langkah:
      - checkout
      - memulihkan_cache:
          Key: Dependency-Cache-{{checksum "Package.json"}}
      - lari:
          Nama: Install-Npm-Dependencies
          Perintah: NPM Pasang
      - SAVE_CACHE:
          Key: Dependency-Cache-{{checksum "Package.json"}}
          Laluan:
            - ./node_modules
Salin selepas log masuk

Pekerjaan adalah koleksi langkah. Dalam coretan kod ini, kami memulihkan kebergantungan yang dipasang semasa proses binaan sebelumnya melalui kerja restore_cache .

Selepas itu, kami memasang kebergantungan yang tidak dicapai dan kemudian simpannya supaya kami tidak perlu memasang semula mereka semasa binaan seterusnya.

Kami kemudian memberitahu CircleCi untuk menjalankan ujian yang kami tulis untuk projek itu dan periksa liputan ujian projek. Perhatikan bahawa kebergantungan cache membuat pembentukan seterusnya lebih cepat kerana kami menyimpan kebergantungan supaya tidak perlu memasangnya semasa binaan seterusnya.

Muat naik liputan kod kami ke coveralls

 - Jalankan: # Jalankan Nama Ujian: Ujian
    Perintah: Ujian Jalan NPM: Unit
  - Jalankan: # Run Code Liputan Laporan Nama: Pelindung Kod
    Perintah: NPM Run Coveralls
# - coveralls/muat naik
Salin selepas log masuk

Itulah keajaiban coveralls kerana kita sebenarnya menjalankan ujian unit di sini. Ingat ketika kami menambah perintah nyc dalam test:unit fail package.json ? Terima kasih, ujian unit kini menyediakan liputan kod.

Ujian unit juga menyediakan liputan kod, jadi kami akan memasukkannya dalam laporan liputan. Itulah sebabnya kami memanggil arahan di sini.

Akhirnya, kod menjalankan skrip coveralls yang kami tambah dalam package.json . Skrip ini menghantar laporan liputan kami ke coveralls.

Anda mungkin menyedari bahawa garis coveralls/upload dikomentari. Ini pada asalnya merupakan watak akhir proses, tetapi pada akhirnya ia menjadi halangan atau kesilapan dalam istilah pemaju. Saya mengulasnya kerana ia boleh menjadi kad Trump pemaju lain.

Menyatukan semuanya

Lihat! Aplikasi kami, termasuk integrasi dan penempatan berterusan!

Integrasi dan penempatan yang berterusan dapat membantu dalam banyak kes. Contoh yang sama adalah apabila perisian berada dalam fasa beta. Pada peringkat ini, banyak penyerahan akan berlaku untuk banyak pembetulan. Sebagai pemaju, perkara terakhir yang saya mahu lakukan ialah menjalankan ujian secara manual dan menggunakan permohonan saya secara manual selepas setiap perubahan kecil. Ughhh. Saya benci pengulangan!

Saya tidak tahu bagaimana keadaan anda, tetapi saya sudah biasa dengan CI dan CD untuk seketika, tetapi saya sentiasa mencari cara untuk meletakkannya kerana mereka terdengar sama ada terlalu keras atau terlalu memakan masa. Tetapi sekarang anda telah melihat persediaan yang agak mudah dan manfaat yang datang dengannya, semoga anda akan terinspirasi dan bersedia untuk mencuba projek anda sendiri.

Atas ialah kandungan terperinci Persediaan integrasi dan penempatan yang berterusan dengan CircleCi dan Coveralls. 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)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1261
29
Tutorial C#
1234
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Apr 09, 2025 am 11:30 AM

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.

See all articles