Panduan Memulai Cepat

Apakah Anda ingin mencoba cara kerja pengujian Fedora CI? Inikan Anda mendapatkan pengalaman praktis secara cepat tanpa harus membaca terlalu banyak dokumentasi? Pengenalan singkat bagi yang tidak sabar ini akan menunjukkan kepada Anda rangkaian langkah minimal untuk mengeksekusi pengujian yang ada serta memberikan tautan bermanfaat ke sumber daya tempat Anda dapat mempelajari lebih lanjut.

Langkah Pertama

Instal paket-paket penting berikut pada sistem Anda (pertimbangkan untuk menggunakan mesin virtual untuk eksperimen yang aman):

sudo dnf install fedpkg standard-test-roles

Gunakan fedpkg untuk mengkloning repositori git paket. Lihat Panduan Pemeliharaan Paket untuk info lebih lanjut tentang alat tersebut.

fedpkg clone -a bash
git checkout -b f33 remotes/origin/f33

Pengujian didefinisikan sesuai dengan Antarmuka Pengujian Standar di direktori tests:

cd bash/tests/

Cakupan pengujian yang akan dieksekusi bersama dengan set dasar metadata dijelaskan dalam playbook tests.yml. Gunakan ansible-playbook untuk menjalankan semua pengujian yang tersedia untuk lingkungan klasik pada host lokal (perlu dijalankan sebagai root):

ansible-playbook --tags=classic tests.yml

Dari output ansible, Anda dapat langsung melihat ringkasan keseluruhan dari pengujian. Jika Anda melihat failed=0 di akhir log, maka semua pengujian berhasil:

localhost: ok=29 changed=11 unreachable=0 failed=0

Untuk hasil pengujian yang lebih rinci, periksa test.log dan berkas lainnya di direktori artifacts:

vim artifacts/test.log

Selesai! Anda baru saja mengeksekusi cakupan pengujian untuk paket Bash :)

Subjek Pengujian

Untuk mengeksekusi pengujian terhadap subjek pengujian yang berbeda, kita perlu menyiapkan lingkungannya. Mari simpan hasil pengujian terperinci di /tmp/artifacts, gunakan inventaris dinamis seperti yang didefinisikan oleh Peran Pengujian Standar dan unduh citra Atomic Host terbaru.

export TEST_ARTIFACTS=/tmp/artifacts
export ANSIBLE_INVENTORY=/usr/share/ansible/inventory
curl -Lo /tmp/atomic.qcow2 https://getfedora.org/atomic_qcow2_latest

Sekarang mari kita coba menjalankan pengujian terhadap semua subjek pengujian yang didukung.

Klasik

Jalankan pengujian terhadap rpm klasik yang terinstal di sistem:

export TEST_SUBJECTS=''
ansible-playbook --tags=classic tests.yml

Lihat dokumen terperinci pada Klasik.

Kontainer

Untuk menguji kontainer, diperlukan dependensi tambahan:

sudo dnf install standard-test-roles-inventory-docker

Jalankan pengujian dalam kontainer docker:

export TEST_SUBJECTS=docker:docker.io/library/fedora:latest
ansible-playbook --tags=container tests.yml

Lihat dokumen terperinci pada Kontainer.

Atomic

Jalankan pengujian terhadap Atomic Host:

export TEST_SUBJECTS=/tmp/atomic.qcow2
ansible-playbook --tags=atomic tests.yml

Lihat dokumen terperinci pada Atomic.

Petunjuk

Debug

Apakah Anda ingin menyelidiki mengapa sebuah pengujian gagal? Aktifkan debugging untuk terhubung dengan mudah ke Atomic atau Kontainer yang sedang berjalan untuk menyelidiki:

export TEST_DEBUG=1
ansible-playbook --tags=atomic tests.yml

Lihat Debug untuk detail mengenai debugging.

Abaikan

Gunakan .gitignore untuk menentukan berkas yang harus diabaikan oleh Git. Berkas-berkas tersebut dibuat selama pengujian berjalan. Buat berkas tests/.gitignore dengan konten berikut:

# Abaikan hasil/artifak pengujian.
artifacts/**
**/*.retry

Berkontribusi

Apakah Anda tertarik untuk berkontribusi pada cakupan pengujian baru? Kami sangat menyambut Anda! Seperti yang telah Anda lihat, Menjalankan pengujian cukup mudah. Menulis pengujian baru atau Membungkus pengujian yang sudah ada juga cukup sederhana. Berikut adalah beberapa rekomendasi untuk membuat pull request baru.

Fork

Kecuali Anda adalah pemelihara paket yang memiliki akses commit langsung, buatlah fork dari repositori git paket menggunakan tombol Fork di antarmuka web Pagure dan tambahkan fork pribadi Anda sebagai remote baru. Buatlah cabang (branch) untuk pengujian baru Anda. Sebagai contoh:

git remote add fork ssh://psss@pkgs.fedoraproject.org/forks/psss/rpms/bash.git
git checkout -b tests

Jika Anda bukan seorang pengemas Fedora, gunakan perintah fedpkg untuk mengkloning fork Anda dan atur konfigurasi repositori git agar Anda dapat melakukan push ke sana. Lihat Pull Request untuk info yang lebih rinci.

fedpkg clone -a forks/psss/rpms/bash
git checkout -b tests

Tambah

Buat cakupan pengujian baru di bawah direktori tests, perbarui berkas tests.yml yang sesuai atau buat yang baru. Jalankan pengujian dan pastikan semuanya stabil serta berfungsi dengan baik di semua lingkungan yang didukung. Tambahkan berkas ke git, lakukan commit dan push:

git add tests.yml test1 test2 test3
git commit -m "Add CI tests using the Standard Test Interface"
git push fork tests:tests

Ada baiknya untuk menyertakan lebih banyak detail dan tautan dalam pesan commit agar pull request lebih mudah ditinjau:

Aktifkan pengujian CI menggunakan Antarmuka Pengujian Standar

Menambahkan set awal pengujian fungsionalitas dasar untuk bash
sesuai dengan Antarmuka Pengujian Standar . Lihat Panduan
Memulai Cepat  untuk pengenalan singkat tentang cara menjalankan
pengujian ini dan portal Fedora CI  untuk info dan tautan yang lebih rinci.

[1] https://docs.fedoraproject.org/en-US/ci/standard-test-interface
[2] https://docs.fedoraproject.org/en-US/ci/quick-start-guide
[3] https://docs.fedoraproject.org/en-US/ci

Buat pull request baru dari cabang tests Anda terhadap cabang rawhide di antarmuka web Pagure. Anda mungkin ingin menyertakan info tambahan tentang pengujian tersebut seperti:

Tersedia tiga pengujian: smoke dan func telah diuji di semua
lingkungan (klasik, kontainer, atomic), login hanya relevan
untuk klasik (karena dependensi yang hilang). Mohon gabungkan
(merge) pengujian ini ke dalam semua cabang yang didukung saat ini.

Hasil

Setelah pull request dibuat, Pipeline CI akan mendeteksinya dan mengeksekusi pengujian. Segera setelah pelaksanaan pengujian selesai, Anda akan melihat hasil pengujian pada halaman pull request tersebut. Lihat halaman Pipeline untuk daftar pipeline yang aktif dan contoh hasilnya.

Gating

Saat ini, gating paket berdasarkan hasil pengujian adalah fitur opsional (opt-in). Untuk mengaktifkan gating bagi komponen Anda, buatlah berkas gating.yaml di root repositori dist git komponen Anda. Lihat Gating untuk detail lebih lanjut.