Skip to content
KyleTryon edited this page Oct 27, 2022 · 5 revisions

Frequently Asked Questions

What programing languages are available/supported?

At this time, Javascript and TypeScript are supported. There is an effort to get the library working with the aws/jsii library which would make it interoperable with Java, Python, C# and potentially Go.

This issue is being tracked here

What features of CircleCI config are not supported by this SDK?

The CircleCI Config SDK is nearly feature complete with the CircleCI Config Schema. Conditionals from CircleCI 2.1 Config such as the when step are not yet fully implemented. These features are mostly relevant to the Visual Config Editor, if you are writing your config with Javascript, you should use programatic logic rather than YAML conditionals.

If you discover a component is missing or broken, please open an issue.

Can existing CircleCI config files be parsed?

Yes! Config parsing has been delegated to an external library called the CircleCI-Config-Parser, it is utilized in the Visual Config Editor

Why does my output config look different from a regular CircleCI config?

The CircleCI Config SDK makes a few assumptions that lead to generated output that might look slightly different than you are used to.

The config SDK currently takes a "compilation" philosophy where the generated config is seen as the ephemeral compiled code, not the source. So the appearance of the compiled code is seen as less of a priority as long as the output is accurate and valid.

  1. YAML Anchors.

You may notice that replicated portions of your output config file contain YAML anchors which reduce the repeated code with YAML references. This functionality is the default behavior enabled by the current YAML library used. This has no affect on your code and only increases the efficiency by reducing file size.

How do I use Orbs with the Config SDK?

See: How to use Orbs in the CircleCI Config SDK