es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible probar el sistema operativo en el flujo de trabajo de Github Actions?

Estoy escribiendo un sistema operativo y me gustaría crear un flujo de trabajo de integración continua para verificar que se construya y se inicie correctamente después de cada confirmación. Localmente lo construyo utilizando qemu-system-i386 -d guest_errors -vga std -drive format=raw,file=[NOMBRE_DEL_ARCHIVO].
Sin embargo, se inicia en una nueva ventana y no sé cómo configurar pruebas automáticas para ello. ¿Puedes sugerir algo al respecto?
Recientemente he conocido esta herramienta, sin embargo no pude ejecutarla en el flujo de trabajo de GitHub (supongo que es porque las acciones de GitHub no admiten virtualización anidada, aunque no estoy seguro).
Sé que podría haber utilizado TravisCI o CircleCI para ello, pero tal vez conoces otras posibilidades o tecnologías?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para automatizar las pruebas de construcción e inicio de tu sistema operativo después de cada commit, puedes configurar un pipeline de CI/CD utilizando GitHub Actions.

    En primer lugar, puedes crear un nuevo archivo de flujo de trabajo en tu repositorio dentro del directorio .github/workflows/, por ejemplo: build-test.yml. En este archivo, puedes definir tus trabajos y pasos del pipeline, por ejemplo:

    name: Construir y Probar SO
    
    on:
      push:
        branches: [main]
    
    jobs:
      construir-y-probar:
        runs-on: ubuntu-latest
        steps:
          - name: Obtener código
            uses: actions/checkout@v2
    
          - name: Construir SO
            run: make # reemplaza con tu comando de construcción
    
          - name: Iniciar SO
            run: qemu-system-i386 -d guest_errors -vga std -drive format=raw,file=[NOMBRE_ARCHIVO]
    
          - name: Ejecutar pruebas
            # ejecuta aquí tus pruebas específicas del SO
    

    Este pipeline se activará en cada push a la rama main y se ejecutará en una máquina virtual Ubuntu utilizando QEMU. Los trabajos se ejecutarán en orden:

    1. Obtener el código más reciente del repositorio
    2. Construir el SO utilizando el comando make
    3. Iniciar el SO utilizando QEMU
    4. Ejecutar las pruebas que hayas definido para tu SO

    Puedes personalizar este pipeline para adaptarlo a tu flujo de trabajo y necesidades de prueba específicas. Por ejemplo, puedes ejecutar más pruebas o implementar tu SO en un proveedor de nube.

    En cuanto a la herramienta que mencionaste, es posible que no funcione debido a limitaciones de GitHub Actions, como la virtualización anidada. Sin embargo, puedes probar otras herramientas o tecnologías como Docker, Vagrant o Azure Virtual Machines para ejecutar tus pruebas en un entorno virtual.

Comments are closed.