OpsNexus

Builds and approvals

Find builds from every CI/CD tool, read a build's stages and console output, stop and rebuild, approve gated stages and follow Argo CD deployments.

On this page

A build is one run of a pipeline. OpsNexus shows builds of native pipelines and builds imported from Jenkins, GitLab CI, GitHub Actions, Azure DevOps and Argo CD in the same lists.

The Builds page

CI/CD → Builds lists every build in the current project, newest first, 25 per page.

Column Shows
Build Pipeline name, build number, platform and start time.
Commit Short commit SHA and branch.
Triggered by The person, schedule, webhook or tool that started it.
Agent The build agent or node that ran it, when known.
Duration How long it took.
Status Queued, running, succeeded, failed or cancelled.

Filters:

  • Platform chips: All, OpsNexus, Jenkins, Azure DevOps, GitLab CI, Argo CD, GitHub Actions.
  • A status list: Any status, Running, Queued, Succeeded, Failed, Cancelled.
  • Builds on the CI/CD overview opens this page filtered to one pipeline. Select ✕ on the pipeline chip to show all pipelines again.

Actions:

  • Logs opens a native build's page in OpsNexus, or the build in its own tool for imported builds.
  • Cancel stops a running or queued build. For an imported build, the integration must have Allow running and cancelling builds turned on.

Imported builds update when their integration syncs, every 5 minutes by default. See Integrations.

A pipeline's page

Open a native pipeline from CI/CD → Pipelines. The header has ▶ Build now (or ▶ Build with parameters), Disable / Enable and Delete. Below it, a summary shows the source, pipeline file, triggers, next scheduled build, the agents it runs on and its variables environment.

Tabs:

Tab Content
Builds The stage view: one row per build, one column per stage, coloured by result. Select a cell to open that build at that stage.
Branches / Repositories Folders only: the pipelines a scan created.
All builds Folders only: builds of every branch.
Scan log Folders only: the output of the last scan.
Configure The pipeline's settings. Needs modify access.
Webhook The webhook URL, setup steps for GitHub and GitLab, and a curl command to trigger a build.

Deleting a pipeline deletes all its builds, logs and artifacts. You type the pipeline's name to confirm. Deleting needs full access to CI/CD pipelines.

A build's page

Each native build has its own page at /cicd/runs/<id>. It updates live while the build runs.

Summary

The top of the page shows the status, Started by, Trigger, Branch, Commit with its message, Agent, Queued time, Duration and, for files from Git, the Pipeline file that was used.

Messages under the header explain the state:

  • In the queue. with the reason, for example Waiting for a free executor on build-01, No build agent with label docker, or Every agent with label linux is offline. See Build agents.
  • Failed: with the error, for example a missing secret or an invalid pipeline file.

Stages

The Stages card shows each stage with its status and duration. Select a stage to see:

  • its steps, each with status, duration and exit code,
  • the plugin and exact version used by a plugin step,
  • why it was skipped (for example branch feature/x doesn't match main),
  • who approved or rejected it, when, and their comment.

A build from Git starts with a Checkout stage. Pipelines with post steps end with a Post actions stage.

Status meanings:

Status Meaning
Queued Waiting for an agent with matching labels and a free executor.
Running An agent is running it.
Waiting for approval Paused before a stage that needs approval.
Succeeded Every stage passed.
Failed A step failed, the build timed out, or it could not start.
Cancelled Someone stopped it, or an approval was rejected.
Skipped A stage did not run: its when conditions did not match, or an earlier stage failed.

Console output

The Console output card streams the log.

  • Select a stage to see only its output.
  • Follow keeps the newest line in view. Wrap lines wraps long lines.
  • Download log saves the full log as a text file.
  • Secrets used by the build, and values of password parameters, appear as ••••••.
  • OpsNexus stores up to 5 MB of console output per build. After that, the log says the rest is not stored.

Artifacts

The Artifacts card lists files the build archived, with View, Download and, for security reports, a link to the findings. See Artifacts.

Stop a build

To stop a native build, select Stop on its page.

  • A queued build is cancelled at once.
  • A running or waiting build is asked to stop. On its next report to OpsNexus, the agent kills the current step's processes, skips the remaining stages, runs the post steps and marks the build cancelled.

You can also use Cancel on the Builds page for running and queued builds.

Rebuild

Rebuild on a finished build starts a new build with the same parameters (including password values), branch and commit. The new build's trigger is replay.

To build the latest commit instead, start a new build from the pipeline.

Timeouts and lost agents

  • A build stops when it reaches its timeout: options.timeout_minutes in the file, else Timeout (minutes) on the pipeline (default 60). Stages and steps can have their own limits. See Pipeline syntax.
  • post steps get at least 15 more minutes after a timeout.
  • If the agent running a build stops reporting for 3 minutes, OpsNexus fails the build with The build agent <name> stopped responding.

Approval gates

A stage with approval: in the pipeline file pauses the build before the stage runs.

yaml
stages:
  - name: Deploy to production
    when:
      branch: [main]
    approval:
      message: Deploy build ${{ run.number }} to production?
    steps:
      - run: ./deploy.sh prod

When the build reaches the stage:

  1. The build status changes to Waiting for approval.
  2. OpsNexus sends the build.approval notification event with the message. Route it to email, Slack, Teams or another channel under Notifications.
  3. The build page shows a Waiting for approval box with the message.

To approve or reject:

  1. Open the build page (from the notification, Builds, or the pipeline).
  2. Optionally enter a Comment.
  3. Select Approve or Reject.

What happens next:

  • Approve: the agent runs the stage within a few seconds.
  • Reject: the build stops. The stage and the build are marked cancelled, and post.failure steps run.
  • Each stage can be decided once. A second decision is refused with the name of the person who decided.
  • The decision, the person and the comment are shown on the stage and recorded in the audit log as ci.run.approve or ci.run.reject.

Who can approve

Anyone with modify access to CI/CD pipelines in the project can approve or reject. A custom role that has the pipelines:trigger action can approve too. The same permission is needed to start builds. The built-in Developer and DevOps Engineer roles have it. See Access control.

Note

OpsNexus does not limit approvals to a named group of people or forbid the person who started the build from approving it. Use project membership and roles to control who can approve.

Timeouts

There is no approval timeout. A build waits until someone approves, rejects or stops it. Time spent waiting does not count towards the build's timeout. A waiting build keeps one executor on its agent busy.

Deployments

CI/CD → Deployments lists Argo CD application syncs as deployments. It is the Builds list filtered to Argo CD.

  • Each Argo CD application is one pipeline. Each successful sync in its history is one deployment, and a running or failed sync operation also appears.
  • The status filter works as on the Builds page.
  • When an integration syncs, new Argo CD syncs send the deployment.started, deployment.completed and deployment.failed notification events.

If the list is empty, connect Argo CD under Integrations and run a sync. See Integrations.

Notifications for builds

Native builds send these events:

Event When
build.started An agent picked up the build.
build.approval The build is waiting for approval.
build.succeeded The build succeeded.
build.failed The build failed.

Cancelled builds send no event. Imported builds send build.started, build.succeeded and build.failed when a sync finds a change (not on an integration's first sync). See Notifications.