TotalApp Docs

CI/CD Pipeline

Design and monitor continuous integration and deployment pipelines.

Overview

The CI/CD Pipeline screen gives you a visual designer for building and monitoring continuous integration and deployment workflows. Define stages (Build, Test, Deploy), add steps with commands to each stage, attach environment variables, and connect to GitHub or GitLab webhooks so pipelines trigger automatically on push or pull request events. Run history shows pass/fail status and output logs for every pipeline run.

Source Push
Build Stage
Test Stage
Deploy Stage
Notify

Designing a Pipeline

Click New Pipeline to create a pipeline. Give it a name and an optional description. The designer opens with an empty stage list.

Adding Stages

  1. Click + Add Stage. Enter a stage name (e.g. Build, Unit Tests, Integration Tests, Deploy Staging, Deploy Production).
  2. Set the stage's failure behaviour: Stop pipeline (default) or Continue to next stage.
  3. Optionally set a timeout in minutes. The stage is marked as failed if it does not complete within the timeout.

Stages run sequentially by default. Toggle Parallel on a stage group to run two stages side by side (e.g. unit tests and linting in parallel).

Stage Templates

Click From Template when adding a stage to choose from common presets: Node.js Build, Docker Build, npm Test, Python pytest, Kubernetes Deploy, SSH Deploy. Templates pre-fill step commands for the chosen stack.

Stages & Steps

Each stage contains one or more steps. A step is a single shell command or script block.

Adding Steps to a Stage

  1. Click + Add Step inside a stage.
  2. Enter a step name (e.g. "Install dependencies").
  3. Enter the command or script. Multi-line scripts are supported.
  4. Optionally set a working directory if the command must run in a specific subfolder.

Step Status Badges

During a run, each step shows a real-time status badge:

  • Pending (grey) — not yet started.
  • Running (blue spinner) — currently executing.
  • Passed (green check) — exited with code 0.
  • Failed (red X) — exited with non-zero code or timeout exceeded.
  • Skipped (grey dash) — skipped because a previous step in the stage failed and the stage is set to stop on failure.

Environment Variables

Environment variables defined at the pipeline level are available to all steps across all stages. Stage-level variables override pipeline-level variables of the same name within that stage only.

Adding Variables

  1. Open the pipeline settings (⚙ Settings tab) and click Environment Variables.
  2. Click + Add Variable. Enter the key and value.
  3. Toggle Secret to mask the value in the UI and run logs — the value is still available to steps at runtime but shows as *** everywhere else.

Use Secrets Management for Sensitive Values

For production credentials, API keys, and tokens, store them in Secrets Management and reference them in pipeline variables as ${{secrets.MY_KEY}} rather than hardcoding values. This keeps secrets out of pipeline configuration files.

Webhook Integration

Connect your pipeline to a source control provider so it triggers automatically on code events.

Setting Up a Webhook

  1. Go to Pipeline Settings → Integrations.
  2. Select your provider: GitHub, GitLab, or Bitbucket.
  3. Copy the Webhook URL and Secret shown.
  4. In your repository settings, add a new webhook using the copied URL and secret. Set the content type to application/json.
  5. Select the events that should trigger the pipeline: push, pull request opened, pull request merged.
  6. Save the webhook in your repository. The next push will trigger the pipeline automatically.

Run History

The Run History tab lists all previous pipeline runs in reverse chronological order. Each run shows:

  • Run number and timestamp
  • Trigger (manual, webhook push, PR event)
  • Commit SHA and branch name
  • Overall status (passed / failed / cancelled)
  • Total duration

Click a run to expand the stage and step breakdown. Click any step to view its captured output log. Logs are retained for 30 days.

FAQ

Where are pipeline steps actually executed?
Pipeline steps run on the machine where TotalApp's server process is running. For local development, that is your own machine. For team environments, deploy TotalApp on a shared server so pipelines execute consistently. Remote SSH execution (running steps on a separate server via SSH) is supported by using ssh user@host 'command' as the step command.
Can I trigger a pipeline manually?
Yes. Click Run Pipeline from the pipeline detail screen. Manual runs let you optionally override environment variable values for that run only — useful for deploying a specific branch or testing a different configuration without changing the pipeline definition.
How do I cancel a running pipeline?
Click Cancel Run on the active run row in the Run History tab. The currently-running step receives a SIGTERM signal and the pipeline is marked as cancelled. Steps that have already passed are not rolled back.