chore: enable Renovate and alauda auto-release for harbor-cli#2
Conversation
🤖 AI Code Review
SummaryThis PR enables Renovate-driven dependency auto-update and automated alauda release publishing for harbor-cli. The changes include Go version upgrades (1.24.8 → 1.26.2), new Renovate configuration, and two new GitHub Actions workflows for auto-tagging and releasing. The approach of adding guards to prevent workflow conflicts is well-designed. Review Statistics
Critical Issues
None identified. Warnings
Suggestions
None. Positive Feedback
ℹ️ About this reviewThis review was automatically generated using the
|
PR Assist Bot — Owner Approval NeededThis PR targets release branch PR: AlaudaDevops/harbor-cli#2 Please reply with |
Add renovate.json with org-level preset extension and a custom regex
manager matching `// renovate:` annotations in .dagger/*.go, so base
images referenced via Dagger's From("...") calls become trackable.
Annotate the two final-image-base From calls in publishimage.go without
changing the current alpine:latest value — the actual pin is applied in
a follow-up commit.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pin the final harbor-cli image base from alpine:latest to alpine:3.23
in both PublishImage build paths. Renovate will track future updates
via the // renovate: annotation added in the previous commit.
Bump `go` directive in go.mod to 1.26.2 and in .dagger/go.mod to 1.26.2.
The root go.mod change also propagates to m.GoVersion, so every
From("golang:"+m.GoVersion+"-alpine") call in .dagger/*.go will pull
golang:1.26.2-alpine on the next Dagger run — no per-file pinning
needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aca02bf to
34f0fb8
Compare
alaudabot
left a comment
There was a problem hiding this comment.
Code review completed. See inline comments for suggestions.
Add GitHub Actions workflows to automate alauda release publishing: - alauda-auto-tag.yml: auto-creates vX.Y.Z-alauda-N tags on push to alauda-v* branches - release-alauda.yml: builds and publishes GitHub Release via Dagger (build → archive → checksum → publish-release) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The default.yaml tag trigger `v*.*.*` also matches alauda tags like `v0.0.19-alauda-0`, which would cause the upstream publish-release job to run alongside release-alauda.yml. The upstream job requires secrets (REGISTRY_PASSWORD etc.) not configured in the fork, causing failures. Add `!contains(github.ref, '-alauda-')` guard to all publish-release step conditions so alauda tags are handled exclusively by release-alauda.yml. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The goal is publishing CLI binaries via GitHub Release, not container images. publishimage.go is unrelated to that pipeline, so revert the alpine pin and renovate annotations to keep it identical to upstream. Remove the now-targetless customManagers section from renovate.json. Renovate still manages go.mod dependencies via the org-level preset. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| contents: write | ||
|
|
||
| jobs: | ||
| release: |
There was a problem hiding this comment.
Warning (reliability/unknown-action): The sagikazarmark/dagger-version-action@v0.0.1 is a version 0.0.1 action from an external maintainer. Consider pinning to a specific version or verifying the action's reliability in production.
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 |
There was a problem hiding this comment.
Warning (perf/missing-artifacts): The workflow builds binaries but doesn't upload them as artifacts. If the release fails, there's no way to access the built artifacts for debugging. Consider adding an actions/upload-artifact step.
|
|
||
| - name: Find latest tag with this prefix | ||
| id: latest | ||
| run: | |
There was a problem hiding this comment.
Info (style/robustness): The tag extraction logic uses bash string manipulation. Consider adding validation to handle malformed branch names gracefully.
| contents: write | ||
|
|
||
| jobs: | ||
| release: |
There was a problem hiding this comment.
Warning (reliability/unknown-action): The sagikazarmark/dagger-version-action@v0.0.1 is a relatively unknown third-party action. Consider verifying its maintenance status or pinning to a specific commit hash for reproducibility.
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 |
There was a problem hiding this comment.
Warning (perf/missing-artifacts): The workflow builds binaries but doesn't upload them as artifacts. Consider adding an actions/upload-artifact step for debugging purposes.
|
|
||
| - name: Find latest tag with this prefix | ||
| id: latest | ||
| run: | |
There was a problem hiding this comment.
Info (style/robustness): The tag extraction logic uses bash string manipulation. Consider adding validation to ensure the branch name matches expected format before processing.
Summary
Enable Renovate-driven dependency auto-update and automated alauda release publishing for the harbor-cli fork.
Renovate configuration
renovate.jsonextendingAlaudaDevops/renovate-config:base, targetingalauda-v*branches, withgomodTidypost-update and assignee configured.go.moddependency updates (patch/digest auto-merge via org preset).Go version bump
go.mod:go 1.24.8→go 1.26.2.dagger/go.mod:go 1.25.0→go 1.26.2go.modchange propagates tom.GoVersion, so everyFrom("golang:"+m.GoVersion+"-alpine")call in.dagger/*.gopicks upgolang:1.26.2-alpineautomatically.Alauda auto-tag and release workflows
alauda-auto-tag.yml: on push toalauda-v*branches, auto-createsvX.Y.Z-alauda-Ntags with incremented N.release-alauda.yml: onv*-alauda-*tag push (orworkflow_call/workflow_dispatch), builds and publishes GitHub Release via Dagger (build → archive → checksum → publish-release).default.yaml: added!contains(github.ref, '-alauda-')guard topublish-releasejob to prevent conflict with alauda release workflow.Scope decisions
publishimage.gois left unchanged (identical to upstream) — it handles container image publishing, not CLI binary releases.go.mod/.dagger/go.modversion bumps touch.dagger/code, minimizing upstream merge conflict surface.Test plan
go build ./...passes with Go 1.26.2go vet ./...passesalauda-v0.0.18after mergeFollow-up
AlaudaDevops/renovate-configPR#16 addsAlaudaDevops/harbor-clito thevX.Y.Z-alauda-Nversioning whitelist (tracked separately).🤖 Generated with Claude Code