Skip to content

no hay CI: cualquier cambio puede romper el build sin que nadie se entere #2

Description

@leocagli

El repositorio no tiene ninguna integracion continua.

La evidencia

$ ls .github/workflows
ls: no such file or directory

No existe .github/workflows. Ningun push ni ninguna PR compila, prueba, ni revisa
nada de forma automatica.

Por que importa

Son cuatro contratos que manejan dinero. Hoy, alguien puede abrir una PR que no
compile, que rompa los tests, o que deje de generar wasm, y nada lo va a decir: la
unica defensa es que un humano se acuerde de correrlo a mano.

Ya paso algo parecido: el salto de soroban-sdk 25 a 27 exigio cambiar el
protocol_version en los tests de los cuatro contratos. Sin CI, un cambio asi se
descubre cuando ya esta en main.

Direccion del arreglo

Un workflow que en cada push y cada PR haga lo mismo que haria una persona:

  • cargo build --target wasm32v1-none --release para los cuatro contratos
  • cargo test para los cuatro
  • cargo fmt --check y cargo clippy -- -D warnings
  • bun install y el build del frontend
  • Cachear ~/.cargo y target/ para que no tarde diez minutos cada vez

Una trampa que conviene saber de antemano

El target correcto es wasm32v1-none, no wasm32-unknown-unknown. soroban-sdk
27 rechaza el segundo en Rust 1.82 o superior, y el error que tira no explica que el
problema es el target. scripts/build.ts ya lo instala solo; el workflow tiene que
hacer lo mismo con rustup target add wasm32v1-none.


Como se toma este trabajo: comentá la issue con un plan concreto (que archivo, que
funcion, y como lo vas a verificar). Se asigna por la calidad de ese plan, no por
orden de llegada. La PR va despues de la asignacion, con el cambio real adentro.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions