Compartir comentarios
Las respuestas se generan en base a la documentación.

Automated repository tests

Warning

Docker Hub Automated Builds is a deprecated feature. It will be fully retired on April 1, 2027.

Note

Automated builds require a Docker Pro, Team, or Business subscription.

Docker Hub puede probar automáticamente los cambios en tus repositorios de código fuente usando contenedores. Puedes habilitar Autotest en cualquier repositorio de Docker Hub para ejecutar pruebas en cada pull request al repositorio de código fuente y así crear un servicio de pruebas de integración continua.

Habilitar Autotest compila una imagen para fines de prueba, pero no sube automáticamente la imagen compilada al repositorio de Docker. Si quieres subir las imágenes compiladas a tu repositorio de Docker Hub, habilita las builds automáticas.

Configurar archivos de prueba automatizados

Para configurar tus pruebas automatizadas, crea un archivo docker-compose.test.yml que defina un servicio sut que enumere las pruebas a ejecutar. El archivo docker-compose.test.yml debe estar ubicado en el mismo directorio que contiene el Dockerfile utilizado para compilar la imagen.

Por ejemplo:

services:
  sut:
    build: .
    command: run_tests.sh

El ejemplo anterior compila el repositorio y ejecuta el archivo run_tests.sh dentro de un contenedor utilizando la imagen compilada.

Puedes definir cualquier cantidad de servicios vinculados en este archivo. El único requisito es que sut esté definido. Su código de retorno determina si las pruebas pasaron o no. Las pruebas pasan si el servicio sut devuelve 0, y fallan en caso contrario.

Note

Solo se inician el servicio sut y todos los demás servicios listados en depends_on. Si tienes servicios que realizan consultas continuas (polling) en busca de cambios en otros servicios, asegúrate de incluir los servicios de consulta en la lista depends_on para garantizar que todos tus servicios se inicien.

Puedes definir más de un archivo docker-compose.test.yml si es necesario. Cualquier archivo que termine en .test.yml se utiliza para las pruebas, y las pruebas se ejecutan de manera secuencial. También puedes usar hooks de compilación personalizados para personalizar aún más el comportamiento de tus pruebas.

Note

Si habilitas las builds automáticas, estas también ejecutarán cualquier prueba definida en los archivos test.yml.

Habilitar pruebas automatizadas en un repositorio

Para habilitar las pruebas en un repositorio de código fuente, primero debes crear un repositorio de compilación asociado en Docker Hub. Tu configuración de Autotest se realiza en la misma página que las builds automáticas; sin embargo, no necesitas habilitar las autobuilds para usar autotest. La autobuild se habilita por rama o etiqueta, y no tienes que habilitarla obligatoriamente.

Solo las ramas que están configuradas para usar autobuild suben imágenes al repositorio de Docker, independientemente de la configuración de Autotest.

  1. Inicia sesión en Docker Hub y selecciona My Hub > Repositories.

  2. Selecciona el repositorio en el que quieres habilitar Autotest.

  3. Desde la vista del repositorio, selecciona la pestaña Builds.

  4. Selecciona Configure automated builds.

  5. Configura los ajustes de las builds automáticas como se explica en Builds automáticas.

    Como mínimo debes configurar:

    • El repositorio de código fuente
    • La ubicación de la compilación
    • Al menos una regla de compilación
  6. Elige tu opción de Autotest.

    Las siguientes opciones están disponibles:

    • Off: Sin builds de prueba adicionales. Las pruebas solo se ejecutan si están configuradas como parte de una build automática.

    • Internal pull requests: Ejecuta una build de prueba para cualquier pull request a las ramas que coincidan con una regla de compilación, pero solo cuando el pull request provenga del mismo repositorio de origen.

    • Internal and external pull requests: Ejecuta una build de prueba para cualquier pull request a las ramas que coincidan con una regla de compilación, incluso cuando el pull request se haya originado en un repositorio de origen externo.

    Important

    Por motivos de seguridad, autotest en pull requests externos está limitado en repositorios públicos. No se descargan imágenes privadas y las variables de entorno definidas en Docker Hub no están disponibles. Las builds automáticas siguen funcionando como de costumbre.

  7. Selecciona Save para guardar la configuración, o selecciona Save and build para guardar y ejecutar una prueba inicial.

Comprobar los resultados de tus pruebas

Desde la página de detalles del repositorio, selecciona Timeline.

Desde esta pestaña puedes ver cualquier build y ejecución de prueba pendiente, en progreso, exitosa y fallida para el repositorio.

Puedes elegir cualquier entrada de la línea de tiempo para ver los registros de cada ejecución de prueba.