Guía de Inicio Rápido
¿Tienes ganas de probar cómo funcionan las pruebas de IC de Fedora? ¿Quieres una experiencia práctica rápida sin tener que leer demasiada documentación? Esta breve introducción para impacientes te mostrará los pasos básicos para ejecutar las pruebas existentes y te proporcionará enlaces útiles a recursos donde puedes obtener más información.
Primeros Pasos
Instala los siguientes paquetes esenciales en tu sistema (considera utilizar una máquina virtual para experimentar de forma segura):
sudo dnf install fedpkg standard-test-roles
Utiliza fedpkg para clonar el repositorio Git del paquete. Consulta la Guía de Mantenimiento de Paquetes para obtener más información sobre la herramienta.
fedpkg clone -a bash git checkout -b f33 remotes/origin/f33
Las pruebas están definidas de acuerdo con la Interfaz de Prueba Estándar en el directorio test:
cd bash/tests/
La cobertura de prueba que se ejecutará junto con el conjunto básico de metadatos se describe en el libro de jugadas tests.yml. Utiliza ansible-playbook para ejecutar todos los test disponibles para el entorno clásico en el host local (necesita ser ejecutado como root):
ansible-playbook --tags=classic tests.yml
Desde la salida de ansible puedes ver directamente un sumario de todo lo del testing. Si ve failed=0 al final de la bitácora entonces fueron aprobadas todas las pruebas:
localhost: ok=29 changed=11 unreachable=0 failed=0
Para obtener resultados de pruebas más detallados, consulte test.log y otros archivos en el directorio artifacts:
vim artifacts/test.log
¡Listo! Acabas de ejecutar la cobertura de pruebas del paquete Bash :)
Sujetos de Prueba
Para ejecutar pruebas con diferentes sujetos de prueba, necesitamos preparar el entorno. Almacenaremos los resultados detallados de las pruebas en /tmp/artifacts, usaremos el inventario dinámico según lo definido en Standard Test Roles y descargaremos la imagen más reciente de 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
Ahora intentemos ejecutar pruebas contra todos los sujetos de prueba admitidos.
Clásico
Ejecute las pruebas frente a rpms clásico instalado en el sistema:
export TEST_SUBJECTS='' ansible-playbook --tags=classic tests.yml
Consulte Clásico para obtener documentación detallada.
Contenedor
Para probar contenedores se necesita una dependencia adicional:
sudo dnf install standard-test-roles-inventory-docker
Ejecuta las pruebas en un contenedor Docker:
export TEST_SUBJECTS=docker:docker.io/library/fedora:latest ansible-playbook --tags=container tests.yml
Consulte Contenedor para obtener documentación detallada.
Atomic
Ejecute las pruebas frente al Atomic Host:
export TEST_SUBJECTS=/tmp/atomic.qcow2 ansible-playbook --tags=atomic tests.yml
Consulte Atomic para documentos detallados.
Consejos
Depurar
¿Le gustaría investigar por qué una prueba ha fallado? Habilite depuración para conectar fácilmente al Atomic o Container ejecutándose para investigar:
export TEST_DEBUG=1 ansible-playbook --tags=atomic tests.yml
Consulte Depuración para detalles sobre la depuración.
Contribuir
¿Te interesa contribuir con una nueva cobertura de pruebas? ¡Bienvenido! Como has visto, ejecutar una prueba es bastante sencillo. Escribir una prueba nueva o encapsular una existente también es bastante sencillo. Aquí tienes algunas recomendaciones para crear una solicitud de extracción.
Bifurcar
A menos que sea el mantenedor del paquete, que tiene acceso directo a las confirmaciones, cree una bifurcación del repositorio git del paquete usando el botón Bifurcar en el interfaz de web Pagure y añade su bifurcación privada como un remoto nuevo. Crea una rama para tus tests nuevos. Por ejemplo:
git remote add fork ssh://psss@pkgs.fedoraproject.org/forks/psss/rpms/bash.git git checkout -b tests
Si no empaqueta Fedora, use el comando fedpkg para clonar su bifurcación y configurar el repositorio Git para poder enviar paquetes. Consulte Solicitudes de extracción para obtener información más detallada.
fedpkg clone -a forks/psss/rpms/bash git checkout -b tests
Añadir
Cree una nueva cobertura de pruebas en el directorio tests, actualice el archivo tests.yml según corresponda o cree uno nuevo. Ejecute las pruebas y verifique que sean estables y funcionen correctamente en todos los entornos compatibles. Añada los archivos a Git, confirme y envíe:
git add tests.yml test1 test2 test3 git commit -m "Agregar pruebas de CI mediante la interfaz de prueba estándar" git push fork tests:tests
Es una buena idea incluir más detalles y enlaces en el mensaje de confirmación para que sea más fácil revisar la solicitud de extracción:
Crea una solicitud nueva de extracción desde tu rama tests contra la rama rawhide en la interfaz web Pagure. Puedes incluir información adicional sobre las pruebas, como:
Resultado
Una vez creada la solicitud de extracción, Conducto IC la detectará y ejecutará pruebas. Una vez finalizada la ejecución de la prueba, verá los resultados en la página de la solicitud de extracción. Consulte la página Conducto para ver la lista de conductos activos y ejemplos de resultados.
Portón
Actualmente, la función de control del paquete según los resultados de las pruebas es opcional. Para habilitar esta función en su componente, cree un archivo gating.yaml en la raíz del repositorio git de su componente. Consulte Gating para más detalles.
Want to help? Learn how to contribute to Fedora Docs ›