Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Cara Mengotomatiskan dan Mengoptimalkan Pengembangan dan Pengujian WordPress Anda di Pantheon

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called How to Use Pantheon to Set Up and Maintain a Production-Safe WordPress Site.
How to Use Pantheon to Set Up and Maintain a Production-Safe WordPress Site
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Indonesian (Bahasa Indonesia) translation by Yanti Baddolo (you can also view the original English article)

Dalam tutorial saya sebelumnya, saya membimbing Anda untuk memulai dengan membuat dan merawat situs WordPress yang telah berstatus produksi dengan menggunakan pengaturan tiga lingkungan pengembangan Dev-Test-Live di Pantheon. Dalam konfigurasi seperti itu, Anda selalu memperbarui kode Anda di lingkungan Dev, lalu mengujinya di lingkungan Test, dan hanya jika semuanya telah terlihat bagus, push ke server Live.

Walaupun ini merupakan peningkatan yang signifikan dibandingkan dengan menjalankan instalasi WordPress dalam satu lingkungan dan mengunggah perubahan Anda langsung ke server langsung, kita dapat melakukannya dengan lebih baik!

"Meminta para ahli untuk melakukan tugas yang membosankan dan berulang, namun secara teknis pekerjaan yang menuntut ini adalah cara paling pasti untuk memastikan kesalahan manusia yang dapat kita pikirkan, short of sleep deprivation, atau inebriation."

Kutipan dari David Farley ini memperlihatkan masalah dengan pengaturan kita pada saat ini: sementara memiliki tiga lingkungan pengembangan dan sebuah proses untuk menggunakannya membantu, kita masih melakukan semua pekerjaan secara manual, dimana dapat dengan mudah menyebabkan kesalahan.

Dalam tutorial ini, untuk membantu menghilangkan masalah-masalah seperti ini, pertama-tama saya akan menunjukkan kepada Anda bagaimana Anda dapat melakukan beberapa tugas berulang lebih cepat dengan menggunakan perintah command line Pantheon, dan kemudian kita akan melihat otomasi. Lebih khusus lagi, kita akan melihat mengotomatisasi proes acceptance test Anda menggunakan server CI (continuous integration) dan kerangka pengujian Behat.

Setelah menyelesaikan tutorial, Anda akan memiliki pemahaman yang kuat tentang prinsip pengembangan dan pembuatan situs WordPress yang andal dan mudah dipelihara di Pantheon. Anda juga akan dilengkapi dengan banyak gagasan tentang bagaimana membuat konfigurasi Anda menjadi lebih baik, dimulai dari peningkatan kecil ke peningkatannya lainnya.

Mari kita mulai!

1. Menggunakan Terminus Command-Line Tool untuk Mengontrol Situs Pantheon Anda

Sementara Dashboard Web Pantheon memberi Anda presentasi visual yang jelas tentang apa yang terjadi pada tiga server Anda dan alat yang hebat untuk mengelolanya, ada kalanya Anda lebih memilih menggunakan command line.

Ini bisa menghemat waktu: saat Anda bekerja di situs Anda, Anda akan segera menyadari bahwa waktu yang dihabiskan untuk tugas sederhana namun berulang - seperti melakukan perubahan atau menerapkannya ke lingkungan pengembangan Test – menumpuk dan menjadi bagian penting dari apa yang Andalakukan setiap hari. Atau bisa juga karena Anda lebih ingin bekerja pada command line.  Atau mungkin Anda ingin membuat skrip yang menggabungkan beberapa tindakan seperti melakukan commit kode Anda, menerapkannya ke Test, dan membersihkan cache dalam satu perintah.

Alat dari command line Pantheon, Terminus, memungkinkan Anda melakukan semua ini-dan lebih banyak lagi.

Langkah 1: Instal Terminus

Sebelum Anda dapat mulai menggunakan Terminus, Anda harus menginstalnya pada komputer Anda.

Petunjuk pemasangan dan penggunaan yang disajikan dalam tutorial ini adalah untuk sistem berbasis Unix (seperti Mac OS X atau Linux). Jika Anda menggunakan Windows, perintahnya sedikit berbeda-periksa petunjuk instalasi Terminus resmi untuk informasi lebih lanjut.

Terminus memiliki persyaratan sistem berikut, jadi pastikan Anda menginstalnya sebelum melanjutkan:

Meski tidak diharuskan oleh Terminus, saya sarankan Anda juga menginstal Composer untuk menyelesaikan tutorialnya. Saya juga berasumsi bahwa Anda sudah menggunakan Git saat kita telah membicarakannya di tutorial sebelumnya.

Ada beberapa cara yang berbeda untuk menginstal Terminus (Anda dapat melihat petunjuk pemasangan untuk rinciannya), namun mari kita lakukan dengan cara yang sederhana yang tidak memerlukan banyak alat tambahan untuk dijalankan.

Di jendela konsol Anda, ketik:

Perintah tersebut akan menginstall Terminus ke /usr/local/bin/terminus di komputer Anda.

Setelah penginstalan selesai, Anda bisa mengujinya dengan mengeluarkan perintah berikut:

Salah satu dari sedikit logo seni ASCII yang berbeda harus muncul. Inilah icon lightning fist Terminus, misalnya:

When you see the logo you know Terminus was installed successfully

Langkah 2: Masuk ke Terminus

Sebelum Anda dapat menggunakan Terminus untuk mengelola akun Pantheon Anda dan situs yang terhubung dengannya, Anda harus masuk log.

Ada dua pilihan untuk melakukan hal ini: Anda dapat masuk menggunakan email dan sandi Pantheon atau menggunakan token mesin untuk mengidentifikasi komputer tempat Anda masuk.

Kita akan melakukannya dengan pendekatan menggunakan token mesin karena ini memberi Anda tingkat keamanan tambahan. Jika komputer Anda mengalami gangguan dan Anda perlu menonaktifkan login untuk itu, Anda dapat mencabut token mesin tersebut, dan tidak ada yang dapat mengakses akun Anda dari komputer itu lagi.  Token mesin juga berguna jika Anda menjalankan Terminus di beberapa mesin dan skrip otomatis-misalnya pada server integrasi Anda yang terus-menerus.

Setiap token mesin yang Anda buat memberi pengguna mesin akses yang sama ke akun Pantheon Anda seperti yang Anda miliki. Jadi, pastikan untuk mencabut token yang tidak lagi Anda gunakan.

Untuk membuat token mesin pertama Anda, masuk ke akun Pantheon Anda. Lalu, pada tab Account, pilih menu pilihan Machine Tokens.

Machine Tokens

Klik create token. Kemudian, pada layar berikutnya, masukkan nama deskriptif dan klik generate token.

Create New Token

Selanjutnya, Anda akan melihat popup yang menampilkan token yang baru dibuat beserta perintah untuk menyimpannya ke Terminus di komputer Anda.

Your new machine token is ready

Salin perintah Terminus dan jalankan pada command line.

Begitu perintah selesai, Terminus siap digunakan di komputer Anda.

Mari kita lihat apa yang bisa Anda lakukan dengan itu!

Langkah 3: Gambaran Umum Perintah Terminus

Di sisa tutorial, kita akan menggunakan perintah Terminus saat kita menyiapkan pengujian otomatis untuk situs WordPress Anda. Itu hanya dasarnya saja, jadi sebelum kita sampai ke sana, mari kita lihat beberapa perintah dan bagaimana Anda bisa belajar lebih banyak tentangnya.

Dengan cara ini, setelah Anda menyelesaikan tutorial ini, Anda akan memiliki petunjuk yang dapat Anda gunakan untuk mengetahui lebih banyak dan lebih meningkatkan alur kerja Anda agar sesuai dengan preferensi Anda.

Anda dapat menemukan daftar perintah Terminus yang terbaru dari Wiki Terminus.

Daftar ini tidak termasuk dokumentasi untuk perintah, jadi saat Anda melihat perintah yang mungkin ingin Anda gunakan, gunakan alat Terminus untuk mencari tahu lebih banyak tentangnya dengan mengetik:

Jika Anda tidak <memasukan> , Terminus akan menunjukkan daftar subcommand yang tersedia untuk perintah yang ditentukan.

Sekarang, mari kita lihat beberapa perintah yang berguna yang dapat Anda gunakan untuk melakukan tindakan dari tutorial sebelumnya secara langsung pada baris perintah.

Mengelola Situs Anda

Untuk melihat daftar semua situs Anda di Pantheon, ketik:

Ada juga perintah untuk membuat situs baru (terminus sites create) dan mengimpor situs (terminus sites import) tanpa mengunjungi Dasbor.  Ini bisa berguna jika Anda adalah agensi dan sering membuat situs baru. Namaun bagi yang lain, Dasbor sudah cukup melakukan pekerjaannya dengan baik.

Satu lagi perintah yang berguna jika Anda menjalankan banyak situs adalah terminus sites mass-update, yang dapat Anda gunakan untuk memperbarui semua situs dev Anda dengan update upstream yang tersedia (dalam kasus kita, versi WordPress yang baru).

Melakukan Push dan Mendeploy Perubahan Anda

Sebagian besar pekerjaan saat mengembangkan situs baru adalah menulis, mendeploy, dan menguji kode. Jadi, baik jika Anda bekerja dalam mode Git atau SFTP, Anda akan melakukan banyak hal ini.  Itulah mengapa itu juga adalah satu area di mana Anda akan mendapatkan keuntungan paling banyak dari penggunaan command line daripada melakukan setiap tindakan melalui Dasbor Web.

Tindakan ini dikelompokkan berdasarkan perintah situs-Anda dapat melihat daftar lengkap dengan mengetikkan:

Karena di sinilah sebagian besar aksi di Pantheon berlangsung, Anda akan melihat bahwa ada banyak subcommand. Luangkan waktu Anda untuk menjelajahinya saat Anda bekerja di situs Anda, tapi untuk saat ini, mari kita lihat beberapa hal yang paling berguna.

Jika Anda bekerja dalam mode SFTP, seperti yang kita lakukan di sebagian besar tutorial sebelumnya, Anda harus melakukan perubahan pada version control untuk menyimpannya dan untuk dapat mendeploy-nya ke server Test dan Live.

Anda bisa melakukannya melalui CLI, dengan menggunakan perintah berikut:

Ganti dengan ID situs Anda (misalnya, contoh tutorial-situs) dan dengan pesan komit deskriptif.

Anda juga dapat menggunakan perintah kode situs untuk fungsi lain yang terkait dengan version control. Lihatlah halaman bantuan perintah untuk informasi lebih lanjut.

Setelah Anda melakukan perubahan Anda (atau melakukan push langsung ke version control, jika Anda berada dalam mode Git), Anda dapat mendeploy-nya ke Test and Live menggunakan perintah deploy situs:

Dengan menggunakan perintah ini, Anda dapat mendeploy dari Dev ke Test atau Test ke Live. Untuk menentukan mana yang Anda lakukan, atur atribut --env ke nilai yang benar (test atau live).  Saat mendeploy ke server Test, Anda juga memiliki opsi untuk mengkloning data lingkungan pengembangan dari lingkungan Live secara otomatis (--sync-content) – hapus flag jika Anda tidak ingin menyinkronkan data.  Jika Anda menentukan flag --cc, Pantheon akan menghapus cache setelah melakukan deployment. Jika Anda ingin menambahkan catatan penggunaan, Anda dapat melakukannya dengan menggunakan parameter --note.

Untuk memperbarui situs tunggal upstream (dalam kasus kita, instalasi dasar WordPress) ke versi terbarunya, Anda dapat menggunakan perintah ini:

Pilih baik list untuk hanya melihat daftar update atau apply untuk memasang update tersebut.

Selain tindakan ini, Anda dapat menggunakan terminus sites untuk melakukan banyak hal lainnya seperti menjalankan backup, membersihkan cache secara manual, mengkloning konten di antara lingkungan pengembangan, dan bekerja dengan lingkungan Multidev. Periksa halaman bantuan untuk daftar lengkap perintah dan parameternya.

Mengontrol Situs WordPress Anda

Bagi pengembang WordPress seperti Anda dan saya, sebagian besar kekuatan Terminus terletak pada kenyataan bahwa itu memungkinkan kita menjalankan perintah WP-CLI di lingkungan target. Dengan cara ini, Anda dapat, misalnya, memasang dan memperbarui plugin di situs pelanggan Anda tanpa mengunjungi dasbor WordPress sama sekali.

Perintah untuk menjalankan perintah WP-CLI pada server dev Pantheon Anda adalah:

Jadi, misalnya, untuk mem-push perubahan konfigurasi dari WP-CFM pada Dev ke Git dan kemudian ke lingkungan Test (contoh bagus dari tugas yang berulang yang menunggu untuk diotomatiskan) dengan menggunakan Terminus, Anda dapat menggunakan perintah berikut:

Ganti tutorial-example-site dengan site_id dan site_options Anda yang sebenarnya dengan id dari bundel opsi yang Anda buat di WP-CFM.

Ketika Anda terus bekerja dengan Pantheon dan Terminus, saya yakin Anda akan menemukan lebih banyak cara untuk menggunakan command line untuk mempercepat dan mengotomatisasi pekerjaan Anda.

Jadi, teruslah bereksperimen!

2. Memulai Dengan Menguji Situs WordPress Anda

Pada tutorial sebelumnya, Anda melihat bagaimana Anda dapat menggunakan lingkungan pengembangan Test untuk menguji kode Anda secara menyeluruh sebelum masuk ke server Live untuk digunakan semua orang.  Walaupun itu adalah ide bagus, memastikan Anda telah memeriksa semuanya adalah pekerjaan yang banyak melibatkan pemeriksaan daftar yang perlu di cek dan banyak melalukan klik-klik secara berulang-ulang. Dengan kata lain, ini adalah tempat yang sangat mungkin terjadi kesalahan.

Itulah mengapa ini adalah langkah sempurna dalam proses Anda untuk melakukan beberapa otomatisasi!

Di bagian akhir tutorial, kita akan membuat pengaturan tes sederhana menggunakan alat pengujian Behat dan membuatnya berjalan secara otomatis setiap kali Anda mendeploy kode dari Dev ke Test pada Pantheon. Untuk melakukan ini, kita akan menggunakan kombinasi alat scripting Pantheon di server Quicksilver dan server CI yang berjalan di cloud.

Kita akan mulai dengan menyiapkan tes dan membuatnya berjalan di komputer Anda.

Langkah 1: Buat Proyek Baru untuk Memegang Tes Behat Anda

Behat adalah framework Development Behavior-Driven Development yang terbuka untuk PHP yang memungkinkan Anda menulis kasus test untuk memeriksa bahwa pengalaman yang didapat pengguna sesuai dengan yang Anda harapkan.

Mari kita mulai dengan menyiapkan Behat di direktori baru, yang kemudian dapat kita deploy ke server CI. Tes Behat akan berjalan secara lokal (kemudian di server CI), menguji situs Pantheon yang berjalan di lingkungan Test Anda.

Kita akan memulai setup Behat kita dengan mendownload template dari GitHub dan kemudian menyesuaikannya untuk kebutuhan kita. Dalam direktori yang sesuai di komputer Anda, jalankan perintah berikut untuk mendownload paket:

Saat Anda membuka paketnya, sebuah direktori baru, WordPress-Behat-Quickstart-master, berhasil dibuat. Ubah nama direktori menjadi sesuatu yang lebih sesuai dengan penggunaannya:

Kemudian ubah ke direktori itu:

Dalam direktori itu, Anda akan menemukan beberapa template konfigurasi dan dua fitur starter yang dapat Anda bangun untuk membuat tes Behat Anda.

Tapi sebelum kita melihatnya, mari kita selesaikan instalasi. Pemasangannya dilakukan dengan menggunakan Composer, jadi jika belum ada Composer yang terpasang, download dan instal sebelum melanjutkan.

Karena paket quick start sudah berisi konfigurasi composer.json dan composer.lock untuk menginstal Behat, yang perlu Anda lakukan hanyalah mengetikkan perintah berikut pada baris perintah:

Komposer akan mendownload paket yang dibutuhkan dan menyimpannya di tempat yang tepat. Saat instalasi berjalan, dan akhirnya selesai, Anda akan melihat sesuatu seperti ini:

Behat installation

Untuk menjalankan Behat, Anda memerlukan dua file konfigurasi: behat.yml dan behat.local.yml.

Proyek quick start sudah berisi file default untuk keduanya, namun file untuk behat.local.yml disimpan sebagai behat.local.yml.sample untuk mencegah Anda melakukan konfigurasi lokal Anda (yang dapat menyertakan kata sandi, misalnya) ke Git. Proyek ini juga berisi file .gitignore dengan behat.local.yml di dalamnya.

Salin contoh konfigurasi:

Anda dapat menggunakan file ini untuk menyimpan konfigurasi lingkungan pengembangan atau pengguna tertentu yang seharusnya tidak sesuai dengan file behat.yml yang sebenarnya. Dalam tutorial ini, tes kami sangat sederhana sehingga yang kita butuhkan hanyalah memastikan file itu ada.

Selanjutnya, mari kita lihat file konfigurasi kedua, behat.yml.

Ubah file dengan mengganti URL yang ditentukan dengan id base_url dengan URL lingkungan pengujian Anda. Pada akhirnya, file akan terlihat seperti ini, di mana http://test-tutorial-example-site.pantheonsite.io adalah URL server pengujian Anda:

Setelah Anda memperbarui konfigurasi, test bahwa semuanya bekerja dengan mencantumkan skenario uji yang tersedia di direktori:

Anda akan melihat daftar panjang regular expressions yang menggambarkan skenario uji dari direktori fitur Anda:

Output for binbehat -dl

Selanjutnya, mari kita lihat lebih dekat pengujian dan menjalankannya terhadap server uji Anda.

Langkah 2: Jalankan Tes Pertama Anda

Pengujian di Behat disebut fitur, dan seperti yang saya sebutkan di atas, file tersebut disimpan dalam file teks di direktori fitur - satu file per fitur untuk diuji.

Jika Anda melihat di dalam direktori, Anda akan menemukan dua fitur yang ditentukan dalam paket quick start: homepage_works.feature dan blog.feature. Anda dapat menggunakannya sebagai titik awal untuk pengujian Anda dan kemudian menambahkan sebanyak yang Anda suka saat membangun satu set tes lengkap untuk situs WordPress Anda.

Mari kita mulai dengan homepage_works.feature, sebuah test cepat yang memeriksa bahwa pengunjung yang tiba di situs Anda dapat memuat halaman muka:

Fitur Behat ditulis dalam format yang disebut Gherkin, yang, seperti yang dapat Anda lihat dari snippet ini, terlihat seperti bahasa Inggris sederhana - sedikit dirumuskan dengan lebih hati-hati daripada catatan antara kita berdua. Atau seperti yang dikatakan dokumentasi Behat, "sebuah bentuk yang dapat dipahami oleh kedua pengembang dan orang bisnis dengan baik."

Dalam tutorial ini, saya tidak akan membahas secara mendalam bagaimana menggunakan Behat untuk membangun tes Anda. Untuk itu, saya sarankan membaca dokumentasi Behat.

Untuk kebutuhan kita pada saat ini, cukup memahami bahwa fitur terdiri dari satu atau lebih Skenario, yang menggambarkan bagaimana pengguna bertindak dan apa yang seharusnya terjadi sebagai hasilnya. Jika ini terlihat seperti sihir, sepertinya tidak.  Di balik layar, Behat menggunakan ekspresi reguler untuk memetakan langkah-langkah skenario Anda ke fungsi PHP yang didefinisikan di test suite Anda (lihat fitur / bootstrap), atau perpustakaan seperti Mink, yang kita gunakan untuk mensimulasikan pengguna yang menjelajahi web.

Misalnya, baris "Saya ada di beranda" diterjemahkan ke fungsi iAmOnHomepage () di perpustakaan Mink, dan menavigasi browser virtual Mink ke akar situs web yang ditentukan di behat.yml—Server Test Anda.

Sekarang, mari kita ubah tes, tapi cukup hanya untuk membuatnya lulus pada server pengujian Anda. Saat ini, tes tersebut mengharapkan untuk menemukan teks "Test with Robots" di beranda Anda. Dengan kata lain, kecuali Anda memiliki teks yang tertulis di sana, tes akan gagal.

Jadi ganti potongan itu dengan kalimat yang Anda tahu akan Anda temukan di halaman depan Anda (misalnya judul situs Anda) dan simpan perubahannya.

Kemudian jalankan perintah berikut untuk menjalankan semua tes yang ditandai dengan @smoke. Dalam kasus ini, hanya tes satu ini saja.

Anda harus melihat pengujian berhasil:

First Behat test completed successfully

Anda sekarang telah menyiapkan tes yang berjalan dengan sukses di mesin pengembangan Anda, menguji situs WordPress di lingkungan Pantheon Test Anda.

Kumpulan tes masih sangat terbatas, dan untuk server nyata, ini baru permulaan. Jadi, setelah menyelesaikan tutorial, kembalilah ke langkah ini, dan gali lebih dalam tentang Behat untuk membuat tes yang benar-benar akan menguji server Anda, periksa semua hal kecil yang akan Anda periksa sendiri apakah Anda menguji situs secara manual.

Tapi sekarang, mari kita lanjutkan ke langkah berikutnya dalam perjalanan kita untuk melakukan acceptance test otomatis dan membuat tes berjalan di cloud.

3. Membuat Tes Behat Anda Berjalan di cloud

Continuous Integration (CI) adalah praktik pengembangan perangkat lunak dimana kode digabungkan ke cabang utama beberapa kali dalam sehari dan diuji secara otomatis pada setiap terjadi push. Di masa ini, ini biasanya berarti Anda memiliki layanan integrasi berkelanjutan yang berjalan di cloud sambil memonitor Git Anda.  Kemudian, setiap kali Anda mempush komit baru ke version control, layanan CI akan berjalan, melakukan pull kode dari Git, dan membangun dan mengujinya.

Dalam tutorial ini, kita akan menggunakan beberapa potongan dari pendekatan ini untuk mengembangkan setup yang lebih mengakomodasi kerangka kerja tiga lingkungan pengembangan Pantheon: daripada menjalankan tes pada setiap git push, kitaakan menjalankannya saat kode baru dideploy ke server Test.

Kita akan menggunakan Circle CI sebagai server CI kita karena memiliki tingkat bebas yang cukup kuat untuk kebutuhan tutorial dan API yang dapat kita hubungi dari Pantheon untuk memulai pembuatannya. Dalam implementasi Anda sendiri, Anda juga dapat menggunakan server CI lainnya, seperti Travis CI atau Jenkins, dengan beberapa perubahan pada proses yang dijelaskan dalam tutorial.

Langkah 1: Push test Anda ke Git

Sebagian besar layanan CI berbasis cloud terkait erat dengan version control, mendukung Bitbucket atau GitHub. Beberapa mendukung keduanya.  Tapi kecuali Anda membuat server CI Anda sendiri, misalnya menggunakan Jenkins, Anda harus menyimpan repositori yang terpisah dari akun Pantheon Anda untuk pengaturan integrasi secara terus-menerus.

Salah satu pilihan adalah mempertahankan seluruh situs di GitHub atau Bitbucket dan mendeploy-nya dari server CI ke Pantheon menggunakan Terminus. Walau itu akan lebih terlihat ideal dengan CI, ini juga merupakan pengaturan yang agak rumit dan – menurut pendapat saya – mematahkan gagasan alur kerja Pantheon.

Itulah sebabnya dalam pengaturan kita, kita hanya akan menyimpan pengaturan test di repository GitHub yang terhubung ke layanan CI dan memelihara kode situs di Pantheon seperti yang telah kita lakukan sejauh ini.

Pertama, masuk ke GitHub dan buat repositori baru:

Create a new Github repository

Kemudian di direktori wp-pantheon-behat Anda, inisialisasi Git dan lakukan perubahan Anda:

Perhatikan bahwa file yang diinstal oleh Composer tidak tersimpan dalam git. Mereka akan diinstal lagi secara otomatis di server CI sebagai bagian dari skrip pengujian.

Kemudian, dorong push ke repositori GitHub baru Anda:

Setup tes Anda sekarang tersedia di GitHub. Mari kita hubungkan ke server CI!

Langkah 2: Melakukan pengaturan server CI

Pertama, masuk ke akun Circle CI gratis menggunakan akun GitHub Anda.

Setelah masuk, Circle akan meminta Anda untuk memilih proyek dari akun GitHub Anda untuk dibangun. Misalnya, di sini, Anda bisa melihat proyek wp-pantheon-behat di bagian atas daftar di sebelah kanan.

Add a project

Klik pada tombol Build project di sebelah project.

Circle CI segera memulai proses build. Ini mengkloning proyek dari Git, menginstal dependensi Composer – dalam kasus ini, alat pengujian Behat – dan kemudian menjalankan tes.

Build started

Dalam build pertama Anda, Circle CI akan mengalami kesalahan:

An error occurred during composer install

Secara default, Circle CI menjalankan versi PHP 5.3.10, yang terlalu tua untuk beberapa perpustakaan yang digunakan oleh Behat. Untungnya, ini mudah diperbaiki.

Di direktori wp-pantheon-behat Anda, buat file baru, circle.yml. File ini akan berisi kustomisasi yang ingin kita buat pada konfigurasi Circle CI kita.

Dalam file, masukkan yang berikut ini:

Komit file ke Git dan push ke repositori GitHub Anda.

Kemudian kembali ke Circle CI, di mana Anda akan melihat bahwa sistem CI sudah mulai berjalan lagi.

Kali ini, langkah Komposer harus berjalan dengan sukses. Tapi masih ada beberapa konfigurasi yang harus dilakukan: sementara build berhasil, Circle CI tidak menemukan tes kita!

No tests found

Untuk mengatasinya, mari kita beritahu kepada Circle bagaimana cara menjalankan tes Behat kita.

Di circle.yml, tambahkan bagian baru, test, tepat di bawah konfigurasi versi PHP yang baru saja kita buat:

Mari kita lihat potongan kode diatas.

Pertama, di bagian awal, kita memberitahu Circle CI untuk membuat file konfigurasi behat.local.yml menggunakan template sebelum mencoba menjalankan tes.

Kemudian, pada bagian yang diberi label override, kita menentukan urutan tindakan yang harus diambil oleh Circle CI kapan pun waktunya untuk menjalankan tes.

Perintah Behat sedikit berbeda dengan yang kita gunakan saat menjalankan tes secara lokal. Itu karena kita ingin mencetak hasil tes dalam format XML JUnit-like yang bisa diurai oleh server CI.  Variabel $CIRCLE_TEST_REPORTS adalah referensi ke direktori di mana Circle CI mengharapkan untuk menemukan laporan pengujian.

Komit dan push perubahannya lagi dan kembali ke Circle CI untuk memastikan bahwa tes tersebut berjalan dengan sukses.

The tests were run successfully

4. Menggunakan Quicksilver untuk Memulai Pengujian pada Waktu Deploy

Sekarang setelah Anda telah menyiapkan tes Behat dan menjalankannya di server CI, langkah terakhir yang tersisa adalah menghubungkan konfigurasi ini dengan alur kerja Pantheon Anda dengan membuat Pantheon memicu perkembangan baru di Circle CI setiap kali Anda menerapkan perubahan Anda ke server Test.

Kita akan melakukan ini dengan menggunakan Quicksikver Platform Hooks dari Pantheon, sebuah sistem yang memberi pengembang kemampuan untuk menghubungkan skrip ke dalam event dalam alur kerja Pantheon.

Memicu pengembangan baru di Circle CI hanyalah salah satu contoh dari apa yang dapat Anda capai dengan menggunakan hook Quicksilver, jadi saya sarankan Anda melihat dokumentasi dan contohnya, dan mencari tahu lebih banyak kegunaan untuk Anda sendiri setelah selesai dengan tutorial ini.

Langkah 1: Tentukan Tindakan Quicksilver

Quicksilver sudah terpasang di lingkungan Pantheon Anda, sehingga Anda dapat mulai menggunakannya hanya dengan menentukan tindakan Quicksilver pertama Anda.

Konfigurasi dari Quicksilver situs Pantheon terdiri dari file konfigurasi, pantheon.yml, ditempatkan pada akar direktori kode situs, dan skrip sebenarnya yang ditulis dalam PHP.

Anda bisa mengupload file-file ini menggunakan SFTP seperti yang kita lakukan di tutorial sebelumnya, atau gunakan mode Git.

Untuk melakukan perubahan pada mode Git, atur dulu Connection Mode ke Git:

Set the connection mode to Git

Klik pada Git Connection Info untuk menyalin perintah untuk mengkloning repositori git Anda dan menjalankannya di direktori yang sesuai pada baris perintah Anda:

Setelah perintah kloning selesai, tambahkan file pantheon.yml di direktori menggunakan editor teks favorit Anda, dengan isi berikut:

Dalam file konfigurasi ini, Anda akan mencantumkan semua skrip yang ingin Anda kaitkan dengan alur kerja Pantheon Anda, menentukan apakah Anda ingin skrip dijalankan sebelum atau sesudah event itu. Untuk event apa pun, Anda dapat menambahkan sebanyak skrip yang Anda butuhkan.

Saat ini, alur kerja berikut tersedia untuk dihubungkan:

  • deploy: Dipicu saat kode Anda dikirim ke Test atau Live. Script dijalankan di lingkungan target.
  • sync_code: Dipicu saat kode dipushmelalui Git atau dilakukan di Dasbor Pantheon. Script dijalankan di lingkungan dimana kode di komit.
  • clone_database: Dipicu saat data dikloning di antara lingkungan. Script dijalankan di lingkungan target.
  • clear_cache: Dipicu saat cache dihapus. Script dijalankan di lingkungan yang bersih.

Setiap script, atau action, terdiri dari sebuah tipe (saat ini hanya webphp, yang berarti kode PHP berjalan pada lingkungan target didukung), deskripsi, dan skrip, path ke file skrip relatif terhadap repositori kode Anda.

Jadi, melihat file pantheon.yml di atas, Anda akan melihat bahwa kita ingin menjalankan skrip, private/scripts/circle_ci_notify.php, tepat setelah event deploy.

Langkah 2: Buat Skrip PHP untuk Tindakan Quicksilver Anda

Untuk berfungsi, hook action Quicksilver kita masih membutuhkan skrip.

Skrip kita akan memanggil new build dari API Circle CI untuk membuat pengujian berjalan kembali. Untuk ini, kita perlu mengambil dan menyimpan kredensial Circle CI API dengan cara yang aman di lingkungan Pantheon Test.

Di dasbor Circle CI Anda, klik Setelan Akun di sisi kiri menu, lalu pilih tab Token API untuk membuat token API baru.

Berikan token baru Anda nama yang deskriptif dan klik pada Create new token.

Create a new API token

Sekarang, Anda memiliki token API yang dapat Anda gunakan untuk digunakan dengan API Circle CI.

Melakukan komit API secret atau data sensitif lainnya ke version control dianggap praktik yang buruk. Jadi, mari gunakan cara yang lebih aman untuk mengirimkan kredensial API ke skrip Anda, dengan membuat file konfigurasi dan mengupload ke lokasi aman di server Test.

Di dalam direktori di luar repositori kode yang diekspor, buatlah sebuah file bernama secrets.json. Dalam file tersebut, letakkan kode berikut ini:

Kemudian, unggah ke lingkungan pengujian Anda, dalam direktori yang bernama files/private, dengan menggunakan SFTP. Perhatikan bahwa sistem file (direktori file di server Anda) terpisah dari kode, dan file di dalamnya tidak pernah masuk ke version control.

Perintah Terminus site connection-info mencetak informasi untuk terhubung ke lingkungan Anda, berdasarkan situs, lingkungan, dan koneksi yang Anda gunakan sebagai parameter.

Jadi, untuk terhubung ke sistem berkas lingkungan pengujian Anda menggunakan SFTP, Anda dapat menggunakan perintah ini – sebagai sedikit trik, seputar perintah dengan karakter backtick (`) menjalankan perintah yang dicetak alih-alih hanya menunjukkannya kepada Anda (tentu saja Anda bisa juga gunakan klien SFTP favorit Anda):

Sekarang setelah Anda terhubung ke server, saatnya mengunggah file konfigurasi:

Kredensial sekarang sudah dibuat. Mari buat naskahnya.

Di repositori kode Anda, buatlah direktori private/scripts, dan di dalamnya, tambahkan script PHP baru, circle_ci_notify.php.

Ini adalah skrip PHP biasa yang berjalan di lingkungan target event—dalam kasus ini event deploy, baik Test atau Live.

Mari kita bahas script baris demi baris.

Pada baris 2-5, skrip memverifikasi bahwa itu dijalankan di lingkungan Test.

Kemudian, pada baris 8, itu membaca parameter API dari file JSON yang baru saja Anda upload ke sistem file, dengan menggunakan fungsi pembantu, _get_secrets, yang ditentukan di akhir file, pada baris 37-50.

Kemudian, pada baris 10-22, naskah tersebut membuat panggilan HTTP ke Circel CI API untuk memulai pembuatannya.

Akhirnya, pada baris 24-28, skrip memeriksa respons dari panggilan API dan mencetak pesan sukses sederhana. Jika Anda suka, ini adalah tempat yang baik untuk pengembangan lebih lanjut: Anda bisa, misalnya, membuat naskah tersebut mengirimkan notifikasi ke saluran Slack tim Anda!

Sekarang, Anda sudah siap. Komit dan push perubahan Anda ke repositori Git Anda.

Setelah git push selesai, Anda akan melihat output berikut, dengan Pantheon yang memberi tahu Anda bahwa ini mendeteksi pantheon.yml Anda yang baru dibuat dan menerapkan tindakannya ke lingkungan Dev.

Namun, seperti yang saya sebutkan sebelumnya, tugas deploy akan berjalan di lingkungan target. Jadi, sebelum skrip kita dapat berjalan, kita perlu menerapkan perubahan pada Test.

Mari kita lakukan dengan menggunakan command-line Terminus (Anda juga dapat menggunakan Dasbor Web, jika Anda mau):

Skrip Quicksilver kiat sekarang tersedia di lingkungan Test.

Untuk melihatnya beraksi, buat perubahan pada basis kode lingkungan Dev Anda (misalnya dengan memasang plugin baru atau memodifikasi tema turunan Anda) dan komit dan deploy perubahan Anda ke Test.

Saat Anda mengunjungi dasbor Circle CI Anda, Anda akan melihat bahwa build baru telah terpicu dan berjalan, menguji bahwa halaman depan situs Test Anda dapat dimuat dengan baik.

Anda juga bisa menggunakan Terminus untuk memeriksa apakah skrip dijalankan dengan benar. Untuk melakukan ini, sebelum menerapkan perubahan Anda, pada command line, jalankan perintahnya:

Sekarang, saat deploymeny selesai, Anda akan melihat hal seperti ini, ini memberi tahu tentang tindakan Quicksilver Anda:

Kesimpulan

Setup pengujian otomatis sekarang selesai: setiap kali Anda mendeploy kode dari lingkungan Pantheon Dev Anda ke Test, sebuah build baru akan dipicu pada Circle CI dan menjalankan tes Behat pada lingkungan Test Anda. Jika ada yang tidak beres, Circle akan mengirimkan sebuah email yang menceritakan tentang build yang gagal sehingga Anda dapat memperbaikinya dan mencoba lagi.

Tapi ini baru permulaan.

Pertama, Anda perlu menulis lebih banyak tes. Pikirkan semua hal yang Anda perlu periksa untuk memastikan situs Anda bekerja dengan benar, lalu tulis fitur Behat untuk mengujinya.  Kemudian, pikirkan bagaimana pengunjung dan pelanggan Anda dapat menggunakan situs ini, dan tulislah tes untuk kasus penggunaan tersebut juga.

Anda juga dapat memperbaiki konfigurasi Circle CI dengan, misalnya, menambahkan pemberitahuan Slack tentang tes yang berhasil. Dengan cara ini, Anda akan tahu bahwa tes otomatis Anda berhasil dan dapat melakukan pemeriksaan terakhir sebelum mempush perubahan secara langsung.  Kemudian, setelah Anda merasa yakin dengan tes Anda, Anda bahkan mungkin mempertimbangkan untuk mengubah circle.yml Anda menggunakan Terminus untuk menerapkan kode dari Test to Live secara otomatis setelah berhasil melakukan build!

Kemungkinannya tidak hanya sampai disini! Anda juga dapat menggunakan Quicksilver untuk menambahkan skrip otomatis ke alur kerja Anda. Lihatlah beberapa contoh dari engineer Pantheon. Kemudian buatlah sendiri!

Sedikit demi sedikit, saat Anda mengotomatisasi proses pengujian dan pengembangan Anda, Anda menciptakan alur kerja yang lebih aman.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.