Skip to content

fix: update rolling build version string to comply with semver - BED-8176#192

Open
StranDutton wants to merge 1 commit intomainfrom
BED-8176-fix-rolling-build-version-string
Open

fix: update rolling build version string to comply with semver - BED-8176#192
StranDutton wants to merge 1 commit intomainfrom
BED-8176-fix-rolling-build-version-string

Conversation

@StranDutton
Copy link
Copy Markdown
Contributor

@StranDutton StranDutton commented May 5, 2026

Currently, the edge-* images that infra uses to host our AzH container are named v0.0.0-rolling++docker, which is not proper semver, so BHE does not accept data from the client.

In this PR, we remove the rolling+<sha> from the rolling release version name so that it is now proper semver and therefore is able to communicate with BHE.

Summary by CodeRabbit

  • Chores
    • Simplified build version management across all build processes.

@StranDutton StranDutton self-assigned this May 5, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Walkthrough

This pull request simplifies the build workflow by replacing dynamic version strings that include the git commit SHA with a static version identifier (v0.0.0) across all container and binary builds.

Changes

Version String Simplification

Layer / File(s) Summary
Docker Build Configuration
.github/workflows/build.yml (lines 76–83, 96–103)
docker/build-push-action build-args changes from VERSION=v0.0.0-rolling+${{ github.sha }} to VERSION=v0.0.0 in both the initial build and image push steps.
Binary Compilation
.github/workflows/build.yml (lines 132–138)
Windows resource generation and Go binary compilation now use static v0.0.0 instead of dynamic v0.0.0-rolling+${{ github.sha }} in go run and go build -ldflags directives.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A rabbit's ode to simpler schemes
No more SHA-rolling in our dreams,
Just v0.0.0, clean and bright,
Build and push—the versions align just right! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating the rolling build version string from a non-compliant semver format to a compliant one by removing the 'rolling+' portion.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch BED-8176-fix-rolling-build-version-string

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.github/workflows/build.yml (1)

80-80: 💤 Low value

Consider v0.0.0-rolling to preserve pre-release semantics while remaining semver-compliant.

The root cause was v0.0.0-rolling+<sha>+docker being invalid semver (double +). Stripping only the +<sha> portion — yielding v0.0.0-rolling — is also fully valid semver (pre-release identifier, no build metadata), and if infra then appends +docker, the result v0.0.0-rolling+docker remains valid semver. Using bare v0.0.0 means every rolling build is version-indistinguishable from a stable v0.0.0 release, which may affect how BHE or downstream tooling interprets client capability.

If BHE accepts pre-release semver, the following change would preserve the rolling signal:

♻️ Alternative: use `v0.0.0-rolling` across all four build steps
-          build-args: VERSION=v0.0.0        # line 80 (Build Container Image)
+          build-args: VERSION=v0.0.0-rolling
-          build-args: VERSION=v0.0.0        # line 99 (Push Image)
+          build-args: VERSION=v0.0.0-rolling
-          go run winres/generate-windows-resources/generate-windows-resources.go "v0.0.0"
+          go run winres/generate-windows-resources/generate-windows-resources.go "v0.0.0-rolling"
-        run: 'go build -ldflags="-s -w -X github.com/bloodhoundad/azurehound/v2/constants.Version=v0.0.0"'
+        run: 'go build -ldflags="-s -w -X github.com/bloodhoundad/azurehound/v2/constants.Version=v0.0.0-rolling"'

If BHE rejects pre-release semver strings, the current v0.0.0 is the right call — this is purely optional if BHE's parser is known to handle pre-release identifiers.

Also applies to: 99-99, 135-135, 138-138

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/build.yml at line 80, Replace the hardcoded semver VERSION
value used in the Docker build args to a pre-release token to preserve the
"rolling" signal: update each occurrence of the build argument key "build-args:
VERSION=..." (the four instances currently set to "v0.0.0") to "v0.0.0-rolling"
so subsequent infra can append "+docker" without producing invalid semver;
ensure you change all four occurrences referenced in the PR comment so the four
build steps use VERSION=v0.0.0-rolling consistently.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/build.yml:
- Line 80: Replace the hardcoded semver VERSION value used in the Docker build
args to a pre-release token to preserve the "rolling" signal: update each
occurrence of the build argument key "build-args: VERSION=..." (the four
instances currently set to "v0.0.0") to "v0.0.0-rolling" so subsequent infra can
append "+docker" without producing invalid semver; ensure you change all four
occurrences referenced in the PR comment so the four build steps use
VERSION=v0.0.0-rolling consistently.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b9dd4519-9b0d-4d69-9357-62d9b5d88503

📥 Commits

Reviewing files that changed from the base of the PR and between 132897a and ee56226.

📒 Files selected for processing (1)
  • .github/workflows/build.yml

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.

1 participant