pcpm ci
Instalación estricta y fail-fast para CI.
pcpm ci [options]
pcpm ci es la variante estricta de pcpm install, diseñada para
integración continua. Es idéntica a pcpm install en lo que hace,
pero más estricta en lo que acepta.
Qué hace
- Lee
pcpm.lockdirectamente, sin re-resolver el grafo. - Verifica que cada paquete del lockfile está presente en el store (o es descargable).
- Materializa el lockfile en el store y en
~/.nuget/packages. - Ejecuta
dotnet restore. - No escribe en
pcpm.lock. Si el lockfile está desactualizado (es decir,Directory.Packages.propsypcpm.lockno coinciden),pcpm cisale con un estado no-cero.
Por qué existe
El bug que atrapa es silencioso en las máquinas de los
desarrolladores pero ruidoso en CI: alguien sube una versión en
Directory.Packages.props y olvida commitear el pcpm.lock
actualizado. En la máquina del desarrollador, pcpm install
re-resolvería y la nueva versión se colaría. En CI, pcpm ci
fallaría y el build quedaría rojo.
Opciones
Igual que pcpm install, más:
| Flag | Efecto |
|---|---|
--strict-hash | Re-hashea cada paquete del store. Más lento, pero atrapa corrupción. |
Ejemplo
# GitHub Actions
- name: Restore
run: pcpm ci
- name: Build
run: dotnet build --no-restore -c Release
Códigos de salida
Además de los códigos documentados para
pcpm install, pcpm ci sale con:
4sipcpm.lockestá desactualizado (es decir, CPM y el lockfile no coinciden).4si faltapcpm.lockpor completo.4si se pasa--strict-hashy los bytes de una entrada del store no coinciden con su hash registrado.
Véase también
- Integración con CI — guía completa de CI.
pcpm install— el comando para desarrolladores.