Skip to content

Create deployments in component repos to visualize integration#2375

Merged
8 commits merged intodevelopment/2.14from
improvement/ZENKO-5132
Apr 24, 2026
Merged

Create deployments in component repos to visualize integration#2375
8 commits merged intodevelopment/2.14from
improvement/ZENKO-5132

Conversation

@francoisferrand
Copy link
Copy Markdown
Contributor

@francoisferrand francoisferrand commented Apr 14, 2026

Create deployment in other repos

In order to show integration status, create deployments (in each
component!) when they are integrated.

  • PR builds create transient deployments
  • A new post-merge step creates a deployment when a dependency changes
  • A deployment is also created for each release

This will allow visualizing directly in components where/when they are integrated in Zenko.

Exemples on a ZKOP PR:
Screenshot 2026-04-21 at 16 23 27

image image

Exemple on repo:
image

Issue: ZENKO-5132

@francoisferrand francoisferrand requested review from a team, DarkIsDude and maeldonn April 14, 2026 15:30
@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5250 branch from 14840db to cc68501 Compare April 15, 2026 18:48
Base automatically changed from improvement/ZENKO-5250 to development/2.14 April 15, 2026 21:30
@bert-e
Copy link
Copy Markdown
Contributor

bert-e commented Apr 15, 2026

Hello francoisferrand,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Available options
name description privileged authored
/after_pull_request Wait for the given pull request id to be merged before continuing with the current one.
/bypass_author_approval Bypass the pull request author's approval
/bypass_build_status Bypass the build and test status
/bypass_commit_size Bypass the check on the size of the changeset TBA
/bypass_incompatible_branch Bypass the check on the source branch prefix
/bypass_jira_check Bypass the Jira issue check
/bypass_peer_approval Bypass the pull request peers' approval
/bypass_leader_approval Bypass the pull request leaders' approval
/approve Instruct Bert-E that the author has approved the pull request. ✍️
/create_pull_requests Allow the creation of integration pull requests.
/create_integration_branches Allow the creation of integration branches.
/no_octopus Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead
/unanimity Change review acceptance criteria from one reviewer at least to all reviewers
/wait Instruct Bert-E not to run until further notice.
Available commands
name description privileged
/help Print Bert-E's manual in the pull request.
/status Print Bert-E's current status in the pull request TBA
/clear Remove all comments from Bert-E from the history TBA
/retry Re-start a fresh build TBA
/build Re-start a fresh build TBA
/force_reset Delete integration branches & pull requests, and restart merge process from the beginning.
/reset Try to remove integration branches unless there are commits on them which do not appear on the source branch.

Status report is not available.

Copy link
Copy Markdown
Contributor

@DarkIsDude DarkIsDude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have some screenshot about the result to add in the PR ?

Comment thread .github/scripts/end2end/deploy-metadata.sh
Comment thread tests/zenko_tests/node_tests/.mocharc.js
Comment thread .gitignore
Comment thread .github/actions/create-component-deployments/create-deployments.js
Comment thread .github/actions/create-component-deployments/parse-deps.js
Comment thread .github/workflows/end2end.yaml
Comment thread .github/workflows/end2end.yaml Outdated
Copy link
Copy Markdown
Contributor

@DarkIsDude DarkIsDude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure we need all this complexity ? Can we just create a simple deployment when the CI is green without transient / not success state ?

@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5132 branch from 7272c7e to 40306ae Compare April 16, 2026 12:19
@francoisferrand
Copy link
Copy Markdown
Contributor Author

francoisferrand commented Apr 16, 2026

Are you sure we need all this complexity ? Can we just create a simple deployment when the CI is green without transient / not success state ?

Transient is for reporting status on PRs : i.e. when we open zenko PR (with bumps), it would create deployments in other repos immediately (before PR is merged!) and this is "show" in the component (head or even PR) that integration succeeded OR failed.

Once merged on development branches or released, indeed should only post successful deployments.

So yes, we need something. And AFAIK it the complexity should be pretty limited, should not have much impact on dev... Worse case it is a useless experiment, and we will remove it.

Comment thread .github/actions/create-component-deployments/parse-deps.js Outdated
@francoisferrand francoisferrand marked this pull request as draft April 16, 2026 15:00
@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5132 branch 2 times, most recently from e8876d6 to ba80646 Compare April 16, 2026 16:24
@francoisferrand francoisferrand marked this pull request as ready for review April 16, 2026 19:27
@scality scality deleted a comment from bert-e Apr 16, 2026
@bert-e
Copy link
Copy Markdown
Contributor

bert-e commented Apr 16, 2026

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

The following reviewers are expecting changes from the author, or must review again:

Comment thread .github/actions/create-component-deployments/action.yaml
Comment thread .github/actions/create-component-deployments/action.yaml
Comment thread .github/actions/create-component-deployments/action.yaml
Comment thread .github/actions/create-component-deployments/create-deployments.js
Comment thread .github/workflows/end2end.yaml Outdated
Comment thread .github/workflows/postmerge.yaml
Comment thread .github/actions/create-component-deployments/create-deployments.js
@francoisferrand
Copy link
Copy Markdown
Contributor Author

francoisferrand commented Apr 17, 2026

⚠️ Claude Code Review: attention required

  • Shell injection in action.yaml:62-68${{ inputs.target-branch }} and ${{ inputs.deps-file }} expanded before bash runs; use env vars
  • Shell injection in action.yaml:71 — Same issue in the JSON conversion step
  • Script injection in action.yaml:77 — step outputs interpolated into JS; use process.env via env: block
  • Script injection in action.yaml:117-121 — multiple inputs interpolated into JS template literals; use process.env
  • Infinite recursion in create-deployments.js:152 — 409/422 retry calls itself without depth guard, can recurse infinitely
  • Shell injection in end2end.yaml:699${{ github.ref_name }} expanded before bash; use env var
  • Shell injection in end2end.yaml:739${{ toJSON(needs) }} inside single-quoted echo; branch-derived outputs with single quotes break the shell
  • Missing permissions in postmerge.yaml — no permissions: block; best practice is least-privilege
  • promote blocked by deployments in release.yaml:148create-deployments failure blocks release promotion; deployments are non-critical

Comment thread .github/workflows/release.yaml
Copy link
Copy Markdown
Contributor

@maeldonn maeldonn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@DarkIsDude I agree with Francois, the transient flow is the main value of this feature. Worth keeping.

Comment thread .github/actions/create-component-deployments/create-deployments.js
Comment thread tests/workflows/create-component-deployments.spec.ts
Copy link
Copy Markdown
Contributor

@DarkIsDude DarkIsDude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good for me 🙏

@bert-e
Copy link
Copy Markdown
Contributor

bert-e commented Apr 22, 2026

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5132 branch 2 times, most recently from 3cd0a74 to ec535e7 Compare April 22, 2026 23:20
@francoisferrand
Copy link
Copy Markdown
Contributor Author

/approve

@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5132 branch 2 times, most recently from 3727d6c to af1f90c Compare April 23, 2026 12:21
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 23, 2026
In order to show integration status, create deployments (in each
component!) when they are integrated.

PR builds create transient deployments, while a new post-merge step

Issue: ZENKO-5132
To reduce noise, publish (transient) deployments only for components
which are updated by the PR.

In post-merge, we always publish deployments though: as it really
indicates the componet is used (and we keep updating the same deployment
so not much noise).

Issue: ZENKO-5132
It is not available in github runners, so use yq to convert to JSON
instead.

Issue: ZENKO-5132
Name of deployment is now <branch name>@<target branch number>, to know
precisely what the transient build is, but also where it would land.

Issue: ZENKO-5132
When computing diff (for transient PR), consider only the changes
introduced by this PR.

Issue: ZENKO-5132
@francoisferrand francoisferrand force-pushed the improvement/ZENKO-5132 branch from af1f90c to 0dd99d2 Compare April 23, 2026 16:33
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 23, 2026
@scality scality deleted a comment from bert-e Apr 24, 2026
@bert-e
Copy link
Copy Markdown
Contributor

bert-e commented Apr 24, 2026

Build failed

The build for commit did not succeed in branch improvement/ZENKO-5132

The following options are set: approve

@bert-e bert-e closed this pull request by merging all changes into development/2.14 in a265da5 Apr 24, 2026
@bert-e bert-e deleted the improvement/ZENKO-5132 branch April 24, 2026 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants