Skip to content

ci: split build and pack with --verbosity normal to surface api-dto build errors - #15

Merged
cloviscoli merged 1 commit into
masterfrom
claude/verbose-pack-step
May 12, 2026
Merged

ci: split build and pack with --verbosity normal to surface api-dto build errors#15
cloviscoli merged 1 commit into
masterfrom
claude/verbose-pack-step

Conversation

@cloviscoli

Copy link
Copy Markdown
Contributor

Problema persistente

PR #14 adicionou o <Import> esperado em Codout.Framework.Api.Dto.csproj, mas o mass-release.yml ainda falha no mesmo step com NU5026 (DLL não encontrada). O output que vejo dos logs é só:

Pack api-dto (Codout.Framework.Api.Dto/Codout.Framework.Api.Dto.csproj)
    Determining projects to restore...
    Restored .../Codout.Framework.Api.Dto.csproj (in 72 ms).
  Error: ...NU5026: The file '.../Codout.Framework.Api.Dto.dll' to be packed was not found on disk.

Sem log de build. Não dá pra distinguir entre:

  1. O <Import> não está adicionando os Compile items (build deveria falhar com CS2008 "no inputs").
  2. Build aconteceu mas não emitiu DLL (improvável mas possível).
  3. Build foi pulado por algum motivo (cache, NoBuild implícito, etc.).

Fix do diagnóstico

Separo dotnet build e dotnet pack no step, com --verbosity normal no build:

dotnet build "$project" --configuration Release --verbosity normal
dotnet pack  "$project" --configuration Release --no-build --output ./artifacts

Vantagens:

  • Build errors aparecem explícitos no log (CS2008, MSB3030, etc.).
  • Pack só roda se build passou — separação clara entre os dois.
  • Se o problema for Compile items vazios, vai aparecer literalmente "Sources: 0 file(s)" ou erro de "no inputs".
  • Os outros 23 pacotes continuam funcionando idênticos.

Como usar

  1. Merge este PR.
  2. Re-dispatch mass-release.yml com confirm: PUBLISH, dry_run: true.
  3. Quando falhar no api-dto (provável), copia o log do step Build api-dto aqui — agora vai ter informação suficiente pra eu identificar a causa raiz.
  4. Com root cause em mãos, abro PR de fix definitivo.

Test plan

  • YAML válido (já validado localmente com yaml.safe_load).
  • Dry-run pós-merge mostra logs de build com --verbosity normal pros 24 pacotes.
  • Logs de api-dto revelam o que está realmente acontecendo no build (Compile items, csc invocation, etc.).

Não muda

https://claude.ai/code/session_015jxScBEvdKkRwGvJTgK5Py


Generated by Claude Code

api-dto keeps failing with NU5026 ("DLL not found") even after the
PR #14 fix that added the Dto.Shared.projitems Import. The previous
pack step ran `dotnet pack` without --no-build, relying on its implicit
build phase, which prints only "Restored..." with no build details
before failing. That makes it impossible to tell whether:

  - the Import is not adding the Compile items at all (build should
    then fail with CS2008 "no inputs"), or
  - the build succeeds but emits no DLL, or
  - the build is being skipped entirely.

Refactor the step to run `dotnet build --verbosity normal` first, then
`dotnet pack --no-build`. With verbose output we will see exactly
which Compile items MSBuild evaluates for Api.Dto and whether csc.exe
runs at all. Applied symmetrically to the mcp branch of the loop.

No functional change for the other 23 packages — they pass through
build and pack normally with the same configuration.

https://claude.ai/code/session_015jxScBEvdKkRwGvJTgK5Py
@cloviscoli
cloviscoli merged commit 77992b1 into master May 12, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants