Actualizaciones de compilación única

La versión inicial de Rawhide Gating es exclusivamente para actualizaciones de compilación única. Esta versión estará disponible en Julio de 2019.

¿Qué son Actualizaciones de Compilación Única?

Las actualizaciones de compilación única contienen una compilación que no depende estrictamente de otras compilaciones y, por lo tanto, pueden ser compiladas de forma segura aisladamente.

Por ejemplo, el paquete rpms/pass es un script bash simple que incluye documentación y utilidades (para emacs, vim o zsh). Depende de git, gnupg2, perl-generators y el árbol para compilar además de xclip para ejecutar estos. No depende estrictamente de la versión específica de ninguno de estos (solo tiene una versión mínima requerida para el árbol). No depende de ninguna ABI (Interfaz Binaria de Aplicaciones) no es necesario volver a compilarlo con cambios o actualizaciones de nombres.

Los paquetes de este estilo son candidatos para actualizaciones de compilación única. Pueden compilarse y probarse por ellos mismos.

¿Cómo Funcionan las Actualizaciones de Compilación Única con Gating?

Las actualizaciones de compilación única son fáciles de controlar ya que se pueden probar de forma aislada de las otras compilaciones. Esto es, el sistema de CI (Integración Continua) puede tomar la compilación, probarla, bloquearla o dejarla pasar sin tener que considerar ningún otro cambio (es decir, paquetes/compilaciones).

El flujo de trabajo es el siguiente:

  • Cuando usted compila su paquete para Rawhide, aterriza en una etiqueta Koji predeterminada (la etiqueta candidato: -updates-candidate).

  • Nuestro bus de mensajes notificará a Bodhi cuando su compilación llegue a esa etiqueta Koji. Automáticamente creará una actualización para esta compilación, en su nombre. La actualización comenzará en el estado Pending y la compilación se moverá a la etiqueta -signing-pending.

  • Nuestro bus de mensajes notifica a RoboSignatory que su compilación llegó a esta etiqueta, este tomará la compilación, la firmará y la moverá a la etiqueta -updates-testing-pending.

  • Nuestro bus de mensajes notifica a Bodhi que su compilación fue firmada y movida a esta etiqueta, Bodhi marcará la compilación como firmada y moverá la actualización al estado de Testing.

  • Se ejecutará la prueba, de sus resultados se informa a ResultsDB que anunciará estos resultados, haciendo que Greenwave consulte su archivo gating.yaml para ver si se cumplen o no todos los criterios requeridos para esta compilación. Si lo son, Greenwave enviará un mensaje al bus de mensaje anunciando esta decisión.

  • Bodhi escuchará estos mensajes de Greenwave. Al recibirlos, insertará la compilación correspondiente en la etiqueta Koji final (esto es, la etiqueta estable) y marca la actualización como Stable.

En este punto, su compilación ha llegado a la etiqueta estable en Koji, por lo tanto, está disponible en buildroot para que cualquiera puede usarlo y confiar en él, y la actualización de Bodhi correspondiente se ha marcado como estable.

enga en cuenta que el hecho de que la actualización sea stable no significa que podrá instalarla por medio de dnf/yum. Significa que la compilación está disponible en el buildroot de Rawhide. Será llevada al espejo una vez que la próxima composición Rawhide tenga éxito.

Diagrama simplificado del flujo de trabajo de las actualizaciones de compilación única

Simplified single build update