Page MenuHomePhabricator

CircleCI 1.0 sunsets on August 31, 2018; CircleCI 2.0 can not work with Phabricator
Open, LowPublic

Description

CircleCI is sunsetting "CircleCI 1.0" on August 31, 2018.

CircleCI 2.0 does not appear to support webhooks. Evidence:

  • No discussion of webhooks in the documentation.
  • This post from a CircleCI employee says they aren't supported.

Phabricator can not interact with CircleCI without webhook support (notably, it has no way to learn about build results), so we can not add CircleCI 2.0 support to Phabricator.

All CircleCI builds will presumably stop working after August 31, 2018. We will likely remove CircleCI support from the upstream if they do.

If you currently use Phabricator + CircleCI, you can:

  • continue to use them separately;
  • convince CircleCI to restore webhook support; or
  • switch to a different build system.

(We have no leverage on CircleCI and it took them about 6 months and multiple false starts to fix a clearly-defined bug with their API in 2015 (see this thread and T9456) so I'm not willing to spearhead the charge on trying to convince them to restore webhook support.)

Event Timeline

The actual evidence about webhooks is a little spotty and it's possible that they "work" and are just undocumented and not officially supported. It's possible that CircleCI just needs a nudge to actually document/support them.

See also PHI1605 (internal), which provides some evidence that:

  • CircleCI has recently deployed at least two sets of changes which may break this flow for some users (via testing and customer interaction with CircleCI support). This seems to be an intended change, although apparently without any external changelog or notice.
  • CircleCI intends to remove notify completely in version 2.1 of their configuration language, so this flow will certainly no longer work beyond that.
  • The intended pathway forward ("Pipelines" and "Pipeline Parameters") requires that users install a significant amount of logic into their build configuration or orbs on the CircleCI side.

My experience with CircleCI has continued to be fairly negative (when maintenance issues arise, they often take me a long time to resolve and are rarely or never rooted in mistakes on our side of the integration). I believe the costs of the existing integration to Phacility have greatly exceeded the benefits of that integration, and anticipate this would be even more true for a more complex integration which was significantly more demanding on users, so I currently have no plans to provide a "Pipeline" integration in the upstream. See also T13229.

Since we previously/currently offered a free CircleCI integration and I don't want to blur the ethics/expectations line around free features turning into paid features, I currently consider this integration tainted and off the table for a licensed first-party extension, even after T13229. A third-party (including CircleCI itself) could potentially still develop a free or licensed extension in the future if they're more optimistic about dealing with the support burden of this integration than I am.