test #128
No reviewers
Labels
No Label
architect:complete
blocked-by:#139
blocks:#140
bug
CI/CD
complexity:low
complexity:medium
complexity:medium
config
depends-on:#124
docker
docs
effort:l
effort:s
effort:xs
epic/development
lead:complete
needs-decision
performance
priority:critical
priority:high
priority:low
priority:medium
security
spike
story-points:1
story-points:3
story-points:5
story-points:8
tech-debt
test
user-story
architect:complete
complexity:high
complexity:low
complexity:medium
cross-repo
cross-repo-dev
dev:in-progress
effort:l
effort:m
effort:s
effort:xl
effort:xs
epic
analytics
epic
development
epic
devops
epic
infra
epic
observability
epic
platform
epic
product
lead:complete
needs-decision
pipeline-complete
pipeline-error
pipeline-running
priority
later
priority
next
priority
now
start-pipeline
status
acceptance
status
blocked
status
done
status
in progress
status
in review
status
in testing
status
ready
status
refine
status
triage
subtask
type
analysis
type
bug
type
hygiene
type
mantainence
type
story
user-story
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Hithomelabs/CFTunnels#128
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "test"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PR Review: test → main
Summary
This PR restructures the CFTunnels project from a single-module Gradle project into a multi-module architecture (
:common,:cftunnels-service,:portainer-automation), relocates source code, extracts shared configuration into a:commonmodule, updates CI workflows to use offline Gradle wrapper validation, and updates the Dockerfile for multi-module builds.What Changed
settings.gradlenow includes 3 submodules;build.gradleuses Spring BOM withapply falsesrc/main/java/.../CFTunnels/tocftunnels-service/src/main/java/.../cftunnels/(also package rename)commonmodule: ExtractsRestTemplateConfigas a shared bean for reuse across submodulesportainer-automationmodule: Scaffold submodule (minimal, referencing:common)gradle/actions/wrapper-validation@v3with offlinesha256sum --check; updatedtest_image_build_push.ymlto use:cftunnels-service:bootBuildImagecftunnels-service/DockerfilePR Review Checklist
Code Quality
scanBasePackages = "com.hithomelabs"correctly picks up beans from both:commonand:cftunnels-servicedependencyManagementproperly centralizes dependency versionsCFTunnels→cftunnels(lowercase) - ensure no external consumers reference the old packageDockerfileat root and oldsrc/directory will be removed on merge - confirm no references remainSecurity
Testing
cftunnels-service/src/test/commonmodule'sRestTemplateConfigCI/CD
test_build.ymltriggers on PRs totestbranchtest_image_build_push.ymltriggers on push totestbranchtestbranch - ensuremainbranch CI workflows are added separately if neededRecommendations
PR title: The title "test" is not descriptive. Consider renaming to something like "refactor: multi-module Gradle restructuring with common and portainer-automation modules"
portainer-automationmodule: This is currently just a scaffold with an empty@SpringBootApplicationclass and no actual logic. Consider either completing it before merging intomain, or deferring its addition until it has meaningful content. Including an empty module inmainmay cause confusion.Dockerfile copies
portainer-automation: If the module is kept, this is fine. But it does add build context bloat for an empty module.Unit tests for
commonmodule:RestTemplateConfigincommonshould have its own unit test confirming the bean is created with the expected configuration (customObjectMapperwithWRAP_ROOT_VALUEandNON_NULLserialization inclusion).Gradle wrapper checksum: Verify that
gradle-wrapper.jar.sha256matches the actualgradle-wrapper.jarin the repo (it was not verifiable via my review, but the CI will catch mismatches).Old source directory: Ensure the old
src/directory is fully deleted on main branch after merge to avoid stale reference confusion.Decision: APPROVED ⚠️ with minor suggestions (items 1-6 above are recommendations, not blocking issues)
The restructuring is well-executed and the changes are sound. The multi-module approach improves separation of concerns and sets a good foundation for future development. The CI improvements are pragmatic for the Gitea CI runner environment.