Skip to content

fix: auto-deploy GitHub Pages and attach NuGet packages to releases#81

Merged
konard merged 4 commits into
mainfrom
issue-79-c80df6f859e8
May 12, 2026
Merged

fix: auto-deploy GitHub Pages and attach NuGet packages to releases#81
konard merged 4 commits into
mainfrom
issue-79-c80df6f859e8

Conversation

@konard
Copy link
Copy Markdown
Member

@konard konard commented May 12, 2026

Summary

Follow-up to PR #80, addressing @konard's comment on issue #79:

  • GitHub Pages deploy was skipped on the PR Clean up root repository folder #80 merge run 25747032579 because the deploy job was gated behind workflow_dispatch + inputs.deploy_pages == true.
  • csharp.yml / rust.yml were not triggered by the same merge because the merge commit (9c93a27e) only touched js/**, docs/**, .github/workflows/wasm.yml, and root README files — none of csharp/** or rust/**. This is correct, intentional path-filter behavior; the case study now records the evidence so the requirement is closed deliberately.
  • NuGet packages were missing from GitHub Releases. csharp/scripts/create-github-release.mjs published the release notes but never attached the .nupkg produced by dotnet pack.

Changes

  • .github/workflows/wasm.yml: split into test, build-pages, and deploy-pages jobs. build-pages runs on every push to main (and on workflow_dispatch), uses actions/configure-pages + actions/upload-pages-artifact, and deploy-pages only runs actions/deploy-pages@v4 with the required pages: write / id-token: write permissions and the github-pages environment. Pattern matched against js-ai-driven-development-pipeline-template's example-app.yml.
  • csharp/scripts/create-github-release.mjs: new --assets-glob flag that resolves a dir/*.ext pattern and calls gh release upload <tag> <files...> --clobber after the release exists. Wired into both the auto and instant release jobs in csharp.yml.
  • Tests: added two js/test/repositoryLayout.test.mjs cases (Pages auto-deploy and NuGet asset glob) and a dry-run unit test for --assets-glob in csharp/scripts/release-scripts.test.mjs.
  • .gitkeep at the repo root is removed; the regression test in PR Clean up root repository folder #80 already forbids it.

Upstream report

The same NuGet-not-attached bug exists in the C# pipeline template. Filed:
link-foundation/csharp-ai-driven-development-pipeline-template#7.

Case study

Updated docs/case-studies/issue-79/README.md with a Follow-up (PR #81) section covering root causes, fixes, and upstream report, plus new evidence files:

  • wasm-25747032579.log, run-25747032579.json, run-25747032579-jobs.json — the post-merge WebAssembly CI run.
  • issue-79-comments-followup.json — the comment that reopened the work.
  • upstream-csharp-template-issue-7.json — confirmation that the upstream issue was filed.

Verification

  • node --test js/test/repositoryLayout.test.mjs — 5/5 pass, including the two new Pages and NuGet assertions.
  • node --test csharp/scripts/release-scripts.test.mjs — 3/3 pass, including the new asset-glob dry-run.

Test plan

  • Layout regression tests pass locally (Pages job + asset glob).
  • Release script tests pass locally.
  • After merge, confirm WebAssembly CI deploys to https://link-foundation.github.io/link-cli/ on the next push to main.
  • On the next C# release run, confirm the GitHub Release includes the .nupkg as an attached asset.

Fixes #79.

Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: #79
konard added 2 commits May 12, 2026 16:32
- Split wasm.yml into test, build-pages, and deploy-pages jobs so a push
  to main builds and deploys the WebAssembly app to GitHub Pages without
  a manual workflow_dispatch trigger. The previous deploy job was gated
  on workflow_dispatch with an explicit deploy_pages input, so normal
  merges to main skipped the deploy step (observed on run 25747032579).
- Teach csharp/scripts/create-github-release.mjs about an --assets-glob
  flag that uploads matching files via gh release upload --clobber, and
  wire --assets-glob "csharp/artifacts/*.nupkg" into both csharp.yml
  release jobs so each GitHub Release ships the produced NuGet package.
- Extend layout and release-script tests to guard the new behavior.
- Remove the regenerated root .gitkeep that the layout test forbids.
Capture the post-merge GitHub Pages skip and the missing csharp/rust
trigger feedback from @konard, the root-cause analysis showing the C# and
Rust workflows correctly skipped the PR 80 merge because no csharp/** or
rust/** files changed, the upstream report filed against the C# template
about .nupkg release assets, and the new evidence files that back the
analysis.
@konard konard changed the title [WIP] Clean up root repository folder fix: auto-deploy GitHub Pages and attach NuGet packages to releases May 12, 2026
@konard konard marked this pull request as ready for review May 12, 2026 16:33
@konard
Copy link
Copy Markdown
Member Author

konard commented May 12, 2026

Working session summary

CI is still running. I'll wait for the background notification rather than poll.

PR #81 status:

  • Branch: issue-79-c80df6f859e8 (clean, up to date with origin)
  • 2 commits ahead of main: 994328a fix: auto-deploy GitHub Pages and attach NuGet packages to releases and ba73e57 docs: extend issue 79 case study with PR 81 follow-up
  • PR state: OPEN, mergeable, ready-for-review
  • CI in progress: WebAssembly CI (2 Test jobs), C# Test (ubuntu/windows). C# macOS Test, Lint, and Detect Changes already green.

All task list items are now marked completed. The CI wait loop will notify when checks finish.


This summary was automatically extracted from the AI working session output.

@konard
Copy link
Copy Markdown
Member Author

konard commented May 12, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost: $5.583062

📊 Context and tokens usage:

Claude Opus 4.7: (2 sub-sessions)

  1. 114.7K / 1M (11%) input tokens, 34.5K / 128K (27%) output tokens
  2. 45.4K / 1M (5%) input tokens, 2.2K / 128K (2%) output tokens

Total: (2.1K new + 141.0K cache writes + 7.3M cache reads) input tokens, 41.5K output tokens, $5.583062 cost

🤖 Models used:

  • Tool: Anthropic Claude Code
  • Requested: opus
  • Model: Claude Opus 4.7 (claude-opus-4-7)

📎 Log file uploaded as Gist (2425KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
Copy link
Copy Markdown
Member Author

konard commented May 12, 2026

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@konard konard merged commit d47e551 into main May 12, 2026
12 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.

Clean up root repository folder

1 participant