This project captures a structured promotion flow with MAIN governing three controlled branches (DEV, TEST, Main/PROD) and enforcing build immutability and promotion-based lifecycle:
This representation enforces promotion over rebuild, ensures traceability across environments, and embeds governance gates before production release-driving consistency, reliability, and auditability across the delivery pipeline.
NOTE: Lengend
- CC: A developer code commit to the DEV branch automatically triggers a new build and publishes the artifacts to the JFrog platform.
- PR: Every pull request from DEV → TEST or TEST → MAIN promotes the corresponding DEV branch build to the next local repository.
- DEV → TEST: promote from prbranch-bpr-dev-local to prbranch-bpr-test-local
- TEST → MAIN: promote from prbranch-bpr-test-local to prbranch-bpr-prod-local
- branch DEV: Artifactory create and build published to prbranch-bpr-dev-local
- branch TEST: git merged from DEV, Artifactory build promoted to prbranch-bpr-test-local
- branch MAIN: git merged from TEST, Artifactory build promoted to prbranch-bpr-prod-local
- FrogBot:
sequenceDiagram
autonumber
participant code as Code
participant pr as Terminal CLI-PR
participant vcs as GIT VCS
participant action as GITHUB ACTIONS
participant repos as REPO Management
loop developer build code
code->>vcs: A developer commits code to the DEV branch in Git.
vcs->>action: Triggers the build-create.yml pipeline for a commit on the DEV branch.
action->>repos: Creates an artifact, uploads it to init-local, and then promotes it to dev-local.
end
loop DEV to TEST pr
pr->>vcs: Creates a PR from the DEV branch and merges it into the TEST branch using ./scripts/pr-dev2test.sh (promote/dev-to-test).
vcs->>action: Triggers the promote-test.yml pipeline for a merge on the TEST branch.
action->>repos: The promote-test.yaml pipeline runs and transfers the artifact from dev-local to qa-local, adding a status comment: “Promoted from DEV (DEV_COMMIT_SHORT_SHA) to TEST (MERGE_COMMIT_SHORT_SHA).”
end
loop TEST to MAIN pr
pr->>vcs: Creates a PR from the TEST branch and merges it into the MAIN branch using ./scripts/pr-test2prod.sh (promote/test-to-main).
vcs->>action: Triggers the promote-prod.yml pipeline for a merge on the MAIN branch.
action->>repos: The promote-prod.yaml pipeline runs and transfers the artifact from qa-local to prod-local, adding a status comment: “Promoted from TEST (MERGE_COMMIT_SHORT_SHA) to PROD (MERGE_COMMIT_SHORT_SHA).”
end






