Taller CI/CD con Jenkins

UwU

FastAPI + Svelte para pipelines CI/CD. No se nos ha ocurrido nada mejor para el taller así que hemos hecho un proyectito basado en una cafetería que para nada nada está inspirada en la de nuestra querida escuela.

Backend: {API_BASE} · Endpoints: /menu · /prices · /prices/:item · /health

Convenio universitario

{#if menu}
€ {menu.university_deal.old_price.toFixed(2)} € {menu.university_deal.current_price.toFixed(2)}

{menu.university_deal.note}

{:else}

Esperando el menú...

{/if}
{#if errorMessage} {/if}
Desayunos
{#if loadingPrices} cargando... {/if}
{#if prices.length}
{#each prices as price}

{prettify(price.item)}

{price.price} €

{price.generated_at}

{/each}

Dependiendo de si vas por la mañana o por la tarde los precios cambian. No sé, como no ponen los precios al público... :p

{:else if !loadingPrices}

No hay precios que mostrar.

{/if}

Estado del sistema

Información de build y backend. Tanto el Build, Commit y Autor lo recuperamos gracias a Jenkins, inyectando ciertas variables a la hora de hacer despliegue del backend.

{#if loadingCiStatus} comprobando... {/if}
{#if ciStatus}

API

{ciStatus.status === 'ok' ? '🟢 Operativa' : '🔴 Caída'}

Build

#{ciStatus.build}

Commit

{ciStatus.commit?.slice(0, 7)}

Uptime

{ciStatus.uptime_seconds}

Autor: {ciStatus.author}

{:else if !loadingCiStatus}

No se pudo obtener el estado del sistema.

{/if}

Historial

Builds recientes en Jenkins. Esto lo conseguimos gracias a que Jenkins nos expone una API REST para consultar información de los jobs y builds.

{#if loadingHistory} actualizando... {/if}
{#if buildHistory.length}
{#each buildHistory as build, i}
#{build.number} {#if build.commits.length === 0} Ejecución manual {:else} {build.commits[0].commit} · {build.commits[0].author} {/if}
{new Date(build.finished_at).toLocaleDateString()}
{#if build.commits.length > 0}

Mensaje {build.commits[0].message}

{/if}

Duración {build.duration_seconds} s

{#if build.status === 'failure'}

Build fallida

{:else}

Correcto

{/if}
{/each}
{:else if !loadingHistory}

No hay builds registradas aún.

{/if}

Open Bokeron

Quiénes estamos detrás del taller

openbokeron.org

Somos Open Bokeron, la asociación de software libre de la ETSII.

Este tinglado lo hemos montado nosotros, así que sí: esta tarjeta se queda todo el taller

  • Usamos Linux y te juzgamos severamente si vienes con Windows.
  • A veces hacemos cosas. #HazCosas dicen por aquí en la ETSII.