Guida Rapida di Avvio
Sei impaziente di provare come funzionano i test della CI Fedora? Vuoi avere un’esperienza pratica rapida senza dover leggere troppa documentazione? Questa breve introduzione per gli impazienti ti mostrerà un insieme minimo di passaggi per eseguire test esistenti e fornirà collegamenti utili a risorse dove puoi imparare di più.
Primi Passi
Installa i seguenti pacchetti essenziali sul tuo sistema (considera l’uso di una macchina virtuale per sperimentare in sicurezza):
sudo dnf install fedpkg standard-test-roles
Usa fedpkg per clonare il repository git del pacchetto. Vedi la Guida alla Manutenzione dei Pacchetti per maggiori informazioni sullo strumento.
fedpkg clone -a bash git checkout -b f33 remotes/origin/f33
I test sono definiti secondo la Interfaccia Test Standard nella directory tests:
cd bash/tests/
La copertura dei test da eseguire insieme al set base di metadati è descritta nel playbook tests.yml. Usa ansible-playbook per eseguire tutti i test disponibili per l’ambiente classico sull’host locale (deve essere eseguito come root):
ansible-playbook --tags=classic tests.yml
Dall’output di ansible puoi vedere direttamente un riepilogo complessivo del testing. Se vedi failed=0 alla fine del log allora tutti i test sono passati:
localhost: ok=29 changed=11 unreachable=0 failed=0
Per risultati dei test più dettagliati controlla i file test.log e altri nella directory artifacts:
vim artifacts/test.log
Ecco fatto! Hai appena eseguito la copertura dei test per il pacchetto Bash :)
Soggetto del test
Per eseguire test su diversi soggetti di test dobbiamo preparare l’ambiente. Salviamo i risultati dettagliati dei test in /tmp/artifacts, utilizziamo l’inventario dinamico come definito dai Ruoli Test Standard e scarichiamo l’ultima immagine di Atomic Host.
export TEST_ARTIFACTS=/tmp/artifacts export ANSIBLE_INVENTORY=/usr/share/ansible/inventory curl -Lo /tmp/atomic.qcow2 https://getfedora.org/atomic_qcow2_latest
Ora proviamo a eseguire test su tutti i soggetti di test supportati.
Classico
Esegui test sui pacchetti rpm classici installati sul sistema:
export TEST_SUBJECTS='' ansible-playbook --tags=classic tests.yml
Vedi Classico per la documentazione dettagliata.
Container
Per testare i container è necessaria un’ulteriore dipendenza:
sudo dnf install standard-test-roles-inventory-docker
Esegui test in un container docker:
export TEST_SUBJECTS=docker:docker.io/library/fedora:latest ansible-playbook --tags=container tests.yml
Vedi Container per la documentazione dettagliata.
Atomic
Esegui test contro l’Atomic Host:
export TEST_SUBJECTS=/tmp/atomic.qcow2 ansible-playbook --tags=atomic tests.yml
Vedi Atomic per la documentazione dettagliata.
Suggerimenti
Debug
Vorresti indagare sul perché un test è fallito? Abilita il debug per connettersi facilmente ad un ambiente Atomic o Container in esecuzione per investigare:
export TEST_DEBUG=1 ansible-playbook --tags=atomic tests.yml
Vedi Debug per i dettagli sul debug.
Contribuire
Sei interessato a contribuire con una nuova copertura di test? Sei il benvenuto! Come hai visto, Eseguire un test è abbastanza facile. Anche Scrivere un nuovo test o Incapsulare uno esistente è abbastanza semplice. Ecco alcune raccomandazioni per creare una nuova pull request.
Fork
A meno che tu non sia il maintainer del pacchetto, che ha accesso diretto ai commit, crea un fork del repository git del pacchetto utilizzando il pulsante Fork nell’interfaccia web di Pagure e aggiungi il tuo fork privato come nuovo remote. Crea un ramo per i tuoi nuovi test. Ad esempio:
git remote add fork ssh://psss@pkgs.fedoraproject.org/forks/psss/rpms/bash.git git checkout -b tests
Se non sei un packager di Fedora, usa il comando fedpkg per clonare il tuo fork e configurare il repository git in modo da poter effettuare il push su di esso. Vedi Pull Requests per informazioni più dettagliate.
fedpkg clone -a forks/psss/rpms/bash git checkout -b tests
Aggiungi
Crea una nuova copertura di test sotto la directory tests, aggiorna di conseguenza il file tests.yml o creane uno nuovo. Esegui i test e verifica che siano stabili e funzionino bene in tutti gli ambienti supportati. Aggiungi i file a git, effettua il commit e il push:
git add tests.yml test1 test2 test3 git commit -m "Add CI tests using the Standard Test Interface" git push fork tests:tests
È una buona idea includere più dettagli e collegamenti nel messaggio di commit per rendere la pull request più facile da revisionare:
Crea una nuova pull request dal tuo ramo tests contro il ramo rawhide nell’interfaccia web di Pagure. Potresti voler includere informazioni aggiuntive sui test, come:
Risultati
Una volta creata la pull request, la CI Pipeline la rileverà ed eseguirà i test. Una volta terminata l’esecuzione dei test, vedrai i risultati del testing nella pagina della pull request. Vedi la pagina Pipeline per l’elenco delle pipeline attive e gli esempi di risultati.
Gating
Attualmente il gating del pacchetto in base ai risultati dei test è una funzionalità opt-in. Per abilitare il gating per il tuo componente, crea un file gating.yaml nella directory principale del tuo repository dist git del componente. Vedi Gating per maggiori dettagli.
Want to help? Learn how to contribute to Fedora Docs ›