Feature Requests

Tell us what you'd like to see added to CircleCI.
Configurable "supersede" scope for serial-group (enable a true FIFO queue across branches)
Today, serial-group skips a queued job whenever a newer pipeline in the same project holds or waits for the same group. That's right for deployments, but it breaks serial groups used to protect a shared resource, such as a staging database used by integration tests. In that case every pipeline needs to run, one at a time. Current behavior (from the docs) "Jobs from newer pipelines (higher pipeline numbers) take precedence over jobs from older pipelines within the same project. If a job from an older pipeline tries to run while a newer pipeline's job is waiting or running, the older job is automatically skipped." Problem scenario PR A's pipeline acquires serial-group: org/project/staging-tests and runs. PR B and PR C queue for the same group. A merge to main triggers a pipeline that uses the same group. When PR A finishes, PR B and PR C are skipped (not_run) because main's pipeline is newer, even though they come from unrelated branches. As a result, developers have to re-run skipped PR workflows by hand. These workflows also show as successful even though their tests never ran. Requested change Add an optional setting that controls which newer pipelines can skip an older one, for example: integration-tests: serial-group: key: << pipeline.project.slug >>/staging-tests supersede: branch # project (default, current behavior) | branch | revision | none project: current behavior, for backward compatibility. branch: a newer pipeline skips older queued jobs only on the same branch. Jobs from other branches wait their turn in FIFO order. revision: a newer pipeline skips older queued jobs only for the same commit SHA, for example on re-triggers. none: a strict FIFO queue that never skips. It's still bounded by the existing 5-hour queue timeout. Why native support matters The community eddiewebb/queue orb, which did FIFO queuing, is deprecated in favor of serial-group. It also relies on legacy v1.1 APIs and a personal API token. Workarounds such as polling the API inside the job use credits and hold a runner slot while waiting. Native serial-group queuing waits for free. Auto-cancel redundant workflows already handles "newer push on the same branch". A branch scope would make serial-group work the same way for shared-resource locks. Environment: CircleCI Cloud, GitHub org, self-hosted runners plus cloud executors. Serial groups are used across PR and default-branch pipelines
0
·
Config
Functions (Beta): Reusable CI Steps Built for Coding Agents
We're launching CircleCI functions in beta, a new way to reuse config alongside orbs. Functions are versioned, tested programs that set up the tools your jobs need, like installing Node, configuring AWS, or setting up Docker. You and your coding agent can find, configure, and validate them before a pipeline runs. With functions you can: Use 10 CircleCI-maintained functions for Node, Python, Go, Ruby, Java, .NET, AWS, Docker, browser tools, and the GitHub CLI Catch version and input mistakes before your pipeline runs, with errors that tell you what's wrong Get dependency caching built in, with no separate save and restore steps Getting started With your coding agent: Ask your agent to set up CircleCI with functions. It can use the CircleCI CLI or connect through the CircleCI MCP server to find the right function, configure it, and validate your config before you push. With the CLI: Install the CircleCI CLI (v1.8.0 or later), then run circleci function list to browse the catalog and circleci function add setup-node to add one to your config. In your config: Declare the function in a functions: block at the top of your config, then call it by name in any job. See the example in the docs . Functions are free on every plan, and your orbs remain fully supported. Browse every available function in the functions catalog . This is a beta feature, so we'd love your feedback on what's useful, what's missing, and how we can make it better. Drop your thoughts here!
0
·
Config
New Slack Integration: Support Multiple Slack Channels Per Project for Notifications
As part of the new CircleCI Slack integration, users need the ability to route different types of notifications from the same project to different Slack channels — for example, sending build notifications to one channel and chunk notifications to another. Problem Statement: The new Slack integration currently supports a single Slack channel per project for notifications. This creates friction in two distinct scenarios: Notification type separation — Teams want different notification categories (builds, chunks, etc.) to go to different channels for better signal-to-noise management. Cross-team pipeline ownership — When Team A owns a pipeline definition but Team B's work triggers failures in it, Team B currently has no way to route those failure notifications to their own channel. The only workaround is to make the pipeline never fail and post to Slack manually — which completely defeats the purpose of automated notifications. Proposed Solution: Within the new Slack integration, allow users to configure multiple Slack channel destinations per project, with the ability to filter/route by notification type (build, chunk, failure, success, etc.) and/or by pipeline definition. User Stories: As a platform engineer, I want build notifications and chunk notifications to go to separate channels so each team stays focused on relevant alerts. As a downstream team, I want pipeline failure notifications routed to my channel even when I don't own the pipeline definition, so I can act on failures that affect my work without relying on the pipeline-owning team.
0
·
Workflow Mgmt
Load More
→