-
Notifications
You must be signed in to change notification settings - Fork 46
chore: Add Gh Workflow for docker image builds #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.1.2. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.1.1...4.1.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.2 dependency-type: indirect ...
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on December 20. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
WalkthroughA new GitHub Actions workflow is introduced to automate Docker image building and publishing for Plane MCP Server. The workflow accepts inputs for build type, release version, and prerelease status; validates release versions against SemVer format; orchestrates Docker image construction via Buildx; and conditionally creates GitHub releases. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
.github/workflows/build-branch.yml (3)
48-84: Remove unused outputFLAT_RELEASE_VERSION(line 65).The variable
FLAT_RELEASE_VERSIONis set and output on line 65 but is never consumed by any downstream job. This is dead code and should be removed.Apply this diff to remove the unused output:
if [ "${{ env.BUILD_TYPE }}" == "Release" ]; then FLAT_RELEASE_VERSION=$(echo "${{ env.RELEASE_VERSION }}" | sed 's/[^a-zA-Z0-9.-]//g') - echo "FLAT_RELEASE_VERSION=${FLAT_RELEASE_VERSION}" >> $GITHUB_OUTPUT semver_regex="^v([0-9]+)\.([0-9]+)\.([0-9]+)(-[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$" - if [[ ! $FLAT_RELEASE_VERSION =~ $semver_regex ]]; then + if [[ ! ${FLAT_RELEASE_VERSION} =~ ${semver_regex} ]]; thenNote: Alternatively, use the variable directly without storing it separately.
103-104: Add validation for required Docker Hub secrets.The workflow depends on
secrets.DOCKERHUB_USERNAMEandsecrets.DOCKERHUB_TOKENbut does not validate their presence before use. Missing or misconfigured secrets will cause the build to fail silently during themakeplane/build-pushaction execution.Add a validation step in the
build_and_pushjob to ensure secrets are set:steps: - id: checkout_files name: Checkout Files uses: actions/checkout@v4 + - id: validate_secrets + name: Validate DockerHub Secrets + run: | + if [ -z "${{ secrets.DOCKERHUB_USERNAME }}" ] || [ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]; then + echo "Error: DOCKERHUB_USERNAME and/or DOCKERHUB_TOKEN secrets are not set" + exit 1 + fi - name: Plane MCP Server Build and PushThis ensures early failure with a clear error message if secrets are missing.
58-84: Consider initializingRELVERSIONinside the conditional for clarity.The variable
RELVERSIONis initialized to "latest" unconditionally (line 61) and then conditionally overwritten for Release builds (line 76). While the logic is correct, it would be clearer to initialize it only within the appropriate conditional block or explicitly document the intent.Consider restructuring for improved clarity:
- BUILD_RELEASE=false - BUILD_PRERELEASE=false - RELVERSION="latest" - if [ "${{ env.BUILD_TYPE }}" == "Release" ]; then + BUILD_RELEASE=true FLAT_RELEASE_VERSION=$(echo "${{ env.RELEASE_VERSION }}" | sed 's/[^a-zA-Z0-9.-]//g') # ... validation ... - BUILD_RELEASE=true RELVERSION=$FLAT_RELEASE_VERSION if [ "${{ env.IS_PRERELEASE }}" == "true" ]; then BUILD_PRERELEASE=true fi + else + BUILD_RELEASE=false + BUILD_PRERELEASE=false + RELVERSION="latest" fiThis makes it explicit that
RELVERSION="latest"only applies to Build (non-Release) type workflows.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build-branch.yml(1 hunks)
🔇 Additional comments (1)
.github/workflows/build-branch.yml (1)
98-98: Verify external action versions are current and maintained.The workflow uses two external GitHub Actions:
makeplane/actions/[email protected](line 98)softprops/[email protected](line 131)Ensure these versions are current, actively maintained, and free from security vulnerabilities, especially since these actions have sensitive privileges (Docker Hub credentials, repository write access).
Please verify:
- That
makeplane/actions/[email protected]exists and is the intended version- That
softprops/[email protected]is the latest stable version- Check for any known security advisories or deprecation notices
Also applies to: 131-131
Description
This pull request introduces a new GitHub Actions workflow for building, pushing, and releasing Docker images for the Plane MCP Server. The workflow is designed to handle both regular and release builds, including pre-releases, and automates the release process with validation for semantic versioning.
Type of Change
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.