Commit Graph

22 Commits

Author SHA1 Message Date
Barry Walker 3aa10461ff fix(ci): use $VAR instead of ${VAR} for shell variables
Woodpecker was interpreting ${VAR} as CI variables and replacing
them with empty strings. Changed to $VAR syntax which gets passed
through to the shell correctly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 19:13:54 -05:00
Barry Walker 2b479a528c fix(ci): add debugging and fix shallow clone for version detection
- Change clone depth to partial: false
- Add explicit git fetch --tags --unshallow
- Add extensive debugging output to diagnose version detection
- Check for empty commits before pattern matching

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 19:11:32 -05:00
Barry Walker 0a3a835e08 ci: add centralized versioning with conventional commit bumps
- Add Directory.Build.props for consistent version across all projects
- Add version.json to track current version in source control
- Update release pipeline to:
  - Calculate version bumps from conventional commits
  - Pass /p:Version to all build/test/pack commands
  - Commit version.json back before tagging
  - Generate changelog in GitHub releases
- Version bump rules:
  - feat!: or BREAKING CHANGE: → major bump
  - feat: → minor bump
  - fix/perf/refactor/build/ci/docs/style/test: → patch bump

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 19:08:18 -05:00
Barry Walker 6cac693e9c feat: add k8s deployment pipeline and code quality improvements
- Add deploy step to Woodpecker CI release pipeline
- Create ParsingHelpers utility to deduplicate ParseIntArray/ParseDate
- Add ConfigureAwait(false) to all async calls (library best practice)
- Fix resource disposal in UploadDocumentInternalAsync
- Configure HttpClient default 30s timeout
- Remove unused GetAllPagesAsync method

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 18:21:00 -05:00
Barry Walker 30496d8e49 fix: use GitHub API directly instead of deprecated plugin
The old plugin only works on tag events. Using curl to call
GitHub API directly to create releases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:44:23 -05:00
Barry Walker 3ce5ef3897 fix: escape variables with $$ for Woodpecker preprocessing
Woodpecker evaluates ${VAR} before the shell runs. Using $$ escaping
so variables are passed to the shell properly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:38:43 -05:00
Barry Walker c3d23c992d fix: try secrets directive instead of environment
Testing if secrets directive injects the token properly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:37:58 -05:00
Barry Walker 60ba630824 fix: revert to github_* secret names
User has github_token and github_username configured.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:29:13 -05:00
Barry Walker cf113b75b1 fix: use ghcr_* secret names to match Woodpecker config
WeightTracker uses ghcr_username/ghcr_token, not github_*.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:28:03 -05:00
Barry Walker 6ed551f2d4 fix: add debug output and quote git URL
Check if GITHUB_TOKEN is being injected properly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:23:21 -05:00
Barry Walker e12e095a82 fix: use single-line kaniko command with proper quoting
Multiline backslash continuation may have shell expansion issues.
Using single line with quoted arguments instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:18:12 -05:00
Barry Walker 627b9fdf6c fix: consolidate all multi-command steps into script blocks
Each command runs in separate shell - variables don't persist.
All steps with variable dependencies now use single script blocks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 16:10:44 -05:00
Barry Walker 0d922b185c fix: put entire version script in single shell block
Each command runs in separate shell - variables don't persist.
Moving everything into one script block.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:55:57 -05:00
Barry Walker 7d17582fe7 fix: use POSIX-compatible shell syntax in version script
The multiline script runs in sh, not bash. Using sed instead of
bash parameter expansion for stripping the v prefix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:49:22 -05:00
Barry Walker 85aecd5b13 fix: consolidate build steps to share NuGet cache
Each step runs in a fresh container, so NuGet packages restored in one
step aren't available in the next. Consolidating restore/build/test
into single steps.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:47:19 -05:00
Barry Walker b77e5baf08 fix: target Linux runners instead of macOS
Add platform label to run on Linux runners with Docker support.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:36:03 -05:00
Barry Walker 1e5d54ebb4 fix: update to .NET 10 GA images
.NET 10 is now generally available - the -preview tags no longer exist.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:48:51 -05:00
Barry Walker 31e6529bbe fix: configure clone plugin with lfs disabled
Use woodpeckerci/plugin-git with lfs: false setting instead of
skipping clone entirely.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:46:28 -05:00
Barry Walker 5cd4ef8401 fix: skip default clone to avoid LFS failure
Woodpecker's default clone step fails when git-lfs isn't installed.
Using manual clone with alpine/git instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:41:54 -05:00
Barry Walker 45ad30c0b4 fix: remove invalid clone configuration
The LFS warning is non-fatal. Removing the incorrect clone config
that was causing linter errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:36:32 -05:00
Barry Walker 61f2d77591 fix: disable Git LFS in clone step
LFS is not installed in the Woodpecker runner and not needed for
this repo anyway.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:35:53 -05:00
Barry Walker 0f2a6937c4 fix: use separate pipeline files instead of multi-document YAML
YAML anchors don't work across document boundaries in multi-document
files. Using separate files in .woodpecker/ directory instead, which
is the recommended approach and matches WeightTracker's pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:31:54 -05:00