Branches, builds and pull requests

When a work item gets its branch, how to see its builds and changes, and how the merge stage opens and merges the pull request.

The branch#

A work item gets its branch the moment its work starts, not when an agent decides to make one. Eido Build cuts it from the project’s default branch and names it from the work item:

eido/PULSE-142-export-truncates-long-names

Because the name is known from the start, the build view has something to show from the first minute and every stage’s documents have somewhere to live.

  • The first part of the name, eido, is the project’s branch prefix. An administrator can change it. A work item keeps the branch it was given.
  • A work item whose type does not cut a branch, such as a task, never gets one.

Documents on the branch#

Each version of a document an agent writes is committed to the branch under .buildengine/<KEY>-<n>/. The commit message includes [skip ci], so editing a design does not redeploy anything.

Builds#

Build on the work item shows the builds for its branch: each run, its jobs, and the failing log in full. It is read from your repository host each time you look, so what you see is always the current state.

Changes#

Changes shows what the branch changes compared with where it will merge: a tree of the files, and each file in full with its differences marked.

The pull request#

In the stock workflows the pull request is one stage, Merge. It:

  1. Opens a pull request from the work item’s branch.
  2. Checks it once a minute and shows what it is waiting for: “Waiting for approval”, “Changes requested”, or “Merged”.
  3. Merges it once somebody approves it on your repository host.

Approving the pull request happens on GitHub or Azure DevOps, under your own branch protection rules. Eido Build does not approve its own pull requests.

The merge commit#

Eido Build writes the merge commit itself: the pull request’s title and number, and one line of its own. This matters because the document commits on the branch say [skip ci]. If those messages were carried into a squash commit, the build for the target branch would be skipped.

Merging into more than one branch#

A merge stage merges into a named branch, and a workflow can have several. A workflow that takes work through UAT might be:

  1. Merge into uat
  2. An approval
  3. Merge into main

Each merge is its own pull request from the work item’s branch. It is never a promotion of uat into main, which would carry everybody else’s work with it.

A later stage can wait for the uat deployment, so that QA on the UAT environment starts once the merge has reached it.

Deleting the branch#

A merge stage can delete the branch after merging. The workflow sets the default, and you can change it on a work item until it merges. The branch is kept anyway while a later stage still needs it, or while it has commits the merge did not take.

Popular

Your first work itemRaise an enhancement and follow it through triage, the agent stages, approval and the merge.User guideHow a workflow runsThe stages a work item passes through, who has each one, and what each status means.User guideAcceptance criteria and QAWriting down what done means, testing a change against it with evidence, and deciding what happens to the bugs that turn up.User guideCutting a releaseFreezing a release, running its checks, deciding what to do about what they find, and shipping it.User guideOdieThe assistant on every page. It reads everything you can read, and anything it wants to change becomes a card for you to press.User guideCosts and budgetsWhat agents cost, where to see it, and the caps that stop a stage, an agent or a month from overspending.AdministrationIntegrations for agentsLetting agents act in other systems by granting them specific actions, without ever handing them a credential.AdministrationLicensingHow Eido Build checks its licence, what it sends when it does, and what to do if it locks.Install and licence