[ARCHITECTURE] Eliminate git tag collision between cftunnels-service and portainer-automation + parametrize cftunnels deployment #150
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
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Hithomelabs/CFTunnels#150
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Problem Statement
Creating and pushing tag
0.28.2fails because the tag already exists. This happens because bothcftunnels-serviceandportainer-automationworkflows create git tags on the same repo using the same semver namespace, but based on different triggers:test_image_build_push.ymltest0.x.y(PATCH bump)prod_image_tag_promote.yamlmain0.x.y(MINOR bump)portainer_automation_build_push.ymltest/main0.x.y(PATCH/MINOR bump)When both workflows trigger on the same push event (e.g., merging to
test), the first creates tag0.28.2, then the second fails withfatal: tag '0.28.2' already exists.Current Inventory
Tags on repo (
gitea.hithomelabs.com/Hithomelabs/CFTunnels):0.28.2,0.28.1,0.28.0, ... — cftunnels-service versionspa-0.25.3,pa-0.25.2,pa-0.25.1— portainer-automation versions (prefixed)pa-pa-0.25.4— double-prefixed bugNote: PR #149 (for issue #139) drops the
pa-prefix from portainer-automation tags, which will cause the collision described above once merged.Desired Outcome
test_image_build_push.yml+prod_image_tag_promote.yamlinto one parameterized workflowArchitecture Decision Required
Please select one option below.
Option A: Service-Prefixed Tags (Recommended)
Re-introduce
pa-prefix for portainer-automation tags. Each service tracks its own semver independently.0.x.y0.28.2pa-0.x.ypa-0.26.0Then merge
test_image_build_push.yml+prod_image_tag_promote.yamlinto a single parameterized workflow (like #139 did for portainer-automation).Pros:
Cons:
Option B: Drop Git Tags for portainer-automation Entirely
portainer-automation doesn't need git tags — only docker image tags (
test,prod, version). Use docker image tags as the sole version mechanism.Keep git tags only for cftunnels-service (as it is today).
Pros:
git tag/git pushsteps from portainer-automation workflowCons:
Option C: Single Unified Version for the Entire Repo
One workflow, one version calculation, one tag. Both services are built from the same tag.
Pros:
Cons:
Option D: Tags Only on Main (Promotions), Not on Test
Only
prod_image_tag_promote.yamlcreates git tags (when merging tomain). Test builds use timestamps or CI run IDs.Pros:
Cons:
@hitanshu Please select (A/B/C/D) or describe your preferred approach.
Implemented Option A (service-prefixed tags) via PR #151.
Changes
.gitea/workflows/cftunnels_build_push.yml— unified parameterized workflow withcf-prefix.gitea/workflows/portainer_automation_build_push.yml— addedpa-prefix, removed inputs blocktest_image_build_push.ymlandprod_image_tag_promote.yaml(absorbed into new file)Each service now uses its own tag prefix and tracks an independent semver sequence.
Closed ✅ — Fix implemented via PR #151 ([ISSUE-150] Fix tag collision: service-specific prefixes and unified cftunnels workflow) which:
cf-prefix for cftunnels-service tagspa-prefix for portainer-automation tagsmainvia PR #152The
pa-pa-0.25.xdouble-prefix tags and stale tags from the collision still exist on the repo and can be cleaned up separately.