Guide de démarrage
Êtes-vous impatient d’essayer comment les tests Fedora CI fonctionnent ? Voulez-vous avoir une rapide prise en main pratique sans trop avoir à lire de documentation ? Cette brève introduction faite pour les impatients vous montrera une série d’étapes minimales pour exécuter les tests existants et vous fournira des liens utiles vers des ressources où vous pourrez en apprendre davantage.
Premiers pas
Installez les packages essentiels suivants sur votre système (envisagez d’utiliser une machine virtuelle pour effectuer des expériences en toute sécurité) :
sudo dnf install fedpkg standard-test-roles
Utiliser`fedpkg` pour cloner le référentiel git du paquet. Voir le Guide de maintenance des paquets pour plus d’infos sur l’outil.
fedpkg clone -a bash git checkout -b f33 remotes/origin/f33
Les tests sont définis selon le répertoire Test d’interface standard dans le répertoire tests
:
cd bash/tests/
La couverture des tests à exécuter ainsi que l’ensemble des métadonnées de base sont décrits dans le playbook tests.yml. Utilisez ansible-playbook
pour exécuter tous les tests disponibles pour l’environnement classique sur l’hôte local (doit être exécuté en tant que root) :
ansible-playbook --tags=classic tests.yml
À partir de la sortie ansible, vous pouvez directement voir un résumé global des tests. Si vous voyez 'failed=0' à la fin du journal de log, c’est que tous les tests ont été réussi :
localhost: ok=29 changed=11 unreachable=0 failed=0
Pour des résultats de test plus détaillés, consultez le test.log
et les autres fichiers dans le répertoire artifacts
:
vim artifacts/test.log
C’est fait ! Vous venez d’exécuter la couverture de test pour le paquet Bash :)
Sujets de test
Pour exécuter des tests sur différents sujets de test, nous devons préparer l’environnement. Nous stockons les résultats détaillés des tests dans /tmp/artifacts
et nous utilisons l’inventaire dynamique tel que défini par le Rôles de test standard et téléchargeons la dernière image d’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
Essayons maintenant d’exécuter des tests avec tous les sujets de test pris en charge.
Classique
Exécuter des tests avec les rpms classiques installés sur le système :
export TEST_SUBJECTS='' ansible-playbook --tags=classic tests.yml
Voir Cassique pour les documents détaillés.
Conteneur
Pour tester les conteneurs, une dépendance supplémentaire est nécessaire :
sudo dnf install standard-test-roles-inventory-docker
Exécuter les tests dans un conteneur docker :
export TEST_SUBJECTS=docker:docker.io/library/fedora:latest ansible-playbook --tags=container tests.yml
Voir Conteneur pour des documents détaillés.
Atomic
Run tests against the Atomic Host:
export TEST_SUBJECTS=/tmp/atomic.qcow2 ansible-playbook --tags=atomic tests.yml
Voir Atomic pour des documents détaillés.
Indications
Debug
Would you like to investigate why a test failed? Enable debugging to easilly connect to running Atomic or Container to investigate:
export TEST_DEBUG=1 ansible-playbook --tags=atomic tests.yml
See Debug for details about debugging.
Contribute
Are you interested in contributing a new test coverage? You are most welcome! As you have seen Executing a test is quite easy. Writing a new test or Wrapping an existing one is quite simple as well. Here’s a few recommendations for creating a new pull request.
Fork
Unless you are maintainer of the package, who has direct commit access, create a fork of the package git repository using the Fork button in Pagure web interface and add your private fork as a new remote. Create a branch for your new tests. For example:
git remote add fork ssh://psss@pkgs.fedoraproject.org/forks/psss/rpms/bash.git git checkout -b tests
If you are not a Fedora packager, use fedpkg
command to clone you fork and set up the git repo config so that you are able to push to it. See Pull Requests for more detailed info.
fedpkg clone -a forks/psss/rpms/bash git checkout -b tests
Add
Create new test coverage under the tests
directory, update the tests.yml
file accorgingly or create a new one. Run tests and verify they are stable and working fine in all supported environments. Add files to git, commit and push:
git add tests.yml test1 test2 test3 git commit -m "Add CI tests using the Standard Test Interface" git push fork tests:tests
It is a good idea to include more details and links in the commit message to make the pull request easier for review:
Create a new pull request from your tests
branch against the rawhide branch in the Pagure web interface. You might want to include an additional info about the tests such as:
Results
Once the pull request is created CI Pipeline will detect it and execute tests. Once the test execution is finished you will see results of the testing on the pull request page. See the Pipeline page for the list of active pipelines and result examples.
Gating
Currently gating the package on test results is an opt-in feature. In order to enable gating for you component create a gating.yaml
file in the root of your component dist git repository. See Gating for more details.
Want to help? Learn how to contribute to Fedora Docs ›