Skip to content

feat(3475): support enabling/disabling of pipeline#3476

Merged
minghay merged 3 commits intomasterfrom
sagar1312-feat-3475-pipeline_disabling
Apr 2, 2026
Merged

feat(3475): support enabling/disabling of pipeline#3476
minghay merged 3 commits intomasterfrom
sagar1312-feat-3475-pipeline_disabling

Conversation

@sagar1312
Copy link
Copy Markdown
Member

Context

Screwdriver supports enabling and disabling individual jobs to prevent builds from being created or executed for those jobs. This is useful for temporarily pausing specific parts of a pipeline without removing them.

However, for large pipelines with many jobs, managing this at the job level becomes time-consuming and inefficient — each job must be disabled individually. There is currently no way to disable an entire pipeline in one action.

Additionally, pipelines currently only support three states: ACTIVE, INACTIVE (used for child pipelines managed by a config pipeline), and DELETING. There is no first-class concept of a user-initiated disabled state at the pipeline level.

Objective

  • Add DISABLED pipeline state with ACTIVE<->DISABLED transition validation
  • Update PUT /pipelines/{id} to accept state and stateChangeMessage fields
  • Pipeline admins can update state alongside all existing fields
  • Screwdriver cluster admins (non-pipeline-admins) can update state fields only
  • Child pipelines now allow state-only updates instead of blocking all updates
  • Block event creation for DISABLED pipelines in POST /events
  • Preserve DISABLED state on child pipeline sync (no longer reset to ACTIVE)
  • Bump screwdriver-data-schema to ^26.1.0 and screwdriver-models to ^33.3.0

References

#3475
screwdriver-cd/data-schema#612
screwdriver-cd/models#664

License

I confirm that this contribution is made under a BSD license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

- Add DISABLED pipeline state with ACTIVE<->DISABLED transition validation
- Update PUT /pipelines/{id} to accept state and stateChangeMessage fields
- Pipeline admins can update state alongside all existing fields
- Screwdriver cluster admins (non-pipeline-admins) can update state fields only
- Child pipelines now allow state-only updates instead of blocking all updates
- Block event creation for DISABLED pipelines in POST /events
- Preserve DISABLED state on child pipeline sync (no longer reset to ACTIVE)
- Bump screwdriver-data-schema to ^26.1.0 and screwdriver-models to ^33.3.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread package.json Outdated
@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 95.424% (+0.002%) from 95.422%
when pulling 795edcb on sagar1312-feat-3475-pipeline_disabling
into 0e4afc9 on master.

@minghay minghay merged commit 6c14f4a into master Apr 2, 2026
2 checks passed
@minghay minghay deleted the sagar1312-feat-3475-pipeline_disabling branch April 2, 2026 20:15
sagar1312 added a commit to screwdriver-cd/ui that referenced this pull request Apr 14, 2026
Exposes the new pipeline DISABLED state (added in screwdriver-cd/screwdriver#3476)
in the V2 pipeline settings page, following the same patterns used for job
enable/disable.

Changes:
- Add Disable/Enable Pipeline section to the settings main page, placed after
  the Sync sections and before Admins, with plain section styling (no danger zone)
- Add Pipeline::Settings::Main::Modal::TogglePipeline confirmation modal with an
  optional reason input; sends PUT /pipelines/:id with { state: 'DISABLED' } or
  { state: 'ACTIVE' } to toggle pipeline state
- Display stateChanger, stateChangeTime (humanized), and stateChangeMessage below
  the current pipeline state when a state change has been recorded
- Add isDisabledPipeline / hasDisabledPipelines utilities and DISABLED icon ('ban')
  to app/utils/pipeline.js
- Add integration tests for the new modal and update existing settings main
  component tests for revised section/danger-zone counts
- Add contributor entry to package.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

3 participants