Hey folks, not sure if it's a bug or a new feature...
# how-do-i
e
Hey folks, not sure if it's a bug or a new feature that was added We've previously had CI steps skip when the trunk was not master, meaning that when we merge a stack into a feature trunk we didn't need to wait for the CI after every PR merge Sometime this week or maybe late last week it's changed, now every merged PR in a stack (with a non-master trunk) is triggering a CI build before merging the next one Did we miss a new feature that we need to reconfigure?
✅ 1
p
(If applicable) To help us more clearly understand what you're trying to do, please provide additional details about: - Screenshots / debug logs / list of commands you've tried to run so far - Your workflow - Current state
e
Previously it was not required
p
Hey Ervin, this should be entirely on the github actions config. could you share the actions YAML for this? could you share the repo name and PR number for this?
e
DMing you the stack URL
entr-clients-cloudfunctions/8893
Actually can't DM, sharing here
p
repo and number should be sufficient
thanks
It does appear you dont have the CI Optimizations feature turned on https://app.graphite.com/settings/ci-optimizations
e
Yeah I had a read of that part, we may have disabled it due to race condition deployments or something I'll re-enable it
actually i dont think we used this - are you guys charging for this?
I just dont want to run my pipeline on non-master branches, github branch protection is only set to master but it seems like graphite isn't respecting it
Right now it's easier for us to merge bottom most into trunk via github, rebase, merge bottom + 1 via github, rebase etc. but this is painful
p
if you never used this, the setting would be entirely in your github actions yaml.
its not the branch protection that determines when the CI runs, we assume that anything upstack will also need this as it progresses throuhg stack merge
ie we dont anticipate the workflow youre using of merging upstack prs into their parent instead of a stack merge
e
Sorry I think I'm chatting past you here, my main request I guess: I want CI to trigger for visibility, but Graphite shouldn't require it to pass when the base branch isn't master. Our GitHub branch protection only requires checks on master — can Graphite respect that distinction during stack merges?
p
TLDR: no we dont support that logic today unfortunately. In a stacked workflow, Graphite generally treats upstack PRs as “eventually merging to the protected base branch”. So the mergeability / gating logic will be evaluated as if the stack will land on that protected target, even if an individual PR in the middle is currently targeting its parent branch. This is because stack merging is bottom-up and (especially for rebase/squash flows) Graphite may need to rebase/retarget PRs as part of the merge process, which means CI/merge requirements you “didn’t need yet” can become necessary as the PR moves toward trunk.
e
Was that always the case, I could swear that even last week my stack merged without passing CI when stacking into a base trunk that wasn't master - my team have mentioned a similar finding
p
has always been the case, yes. 2 things i can think of: 1) you can use admin privs to merge anyway 2) merge via github.
👍 1