Support for Multiple Operating Systems, without Defaults or Boilerplate

CI/CD
Jul 16, 2025
Support for Multiple Operating Systems, without Defaults or Boilerplate

We recently shipped support for specifying the operating system used for RWX runs.

#Interface Considerations

When designing the feature, we had to decide how to approach the configuration.

Should the operating system be required in the configuration? We like keeping our configuration syntax as minimal as possible, so we wanted to omit it. We didn't like the idea of having to type boilerplate lines of configuration in every run definition.

However, without specifying, how would we choose which operating system to run? We could always run the latest, but this would run the risk of runs breaking whenever we released newer operating systems. We care a lot about making sure runs never spontaneously break, so we didn't like the idea of ever automatically rolling out a new version.

There are techniques that dev tool companies use to mitigate this problem, such as sending out advanced notices with recommendations to test, or configuring a default value out-of-band, such as in the web UI for the account. We considered those approaches undesirable.

#Config Injection with the CLI

After some contemplation, Tommy suggested having the CLI automatically inject the base OS configuration. It's the best of both worlds.

Since engineers are already testing RWX run definitions using the CLI, we can make the operating system required without requiring people to enter it themselves.

Automatic configuration is the best technique to have explicit values without requiring boilerplate.

#Example

Start with a config file without an operating system specified

tasks.yml
1
tasks:
2
- key: hello-world
3
run: echo "hello world"

Run the file

shell
rwx run --file tasks.yml --open

Have the base operating system automatically configured

tasks.yml
1
base:
2
os: ubuntu 24.04
3
tag: 1.1
4
5
tasks:
6
- key: hello-world
7
run: echo "hello world"

#Demo

Never miss an update

Get the latest releases and news about RWX and our ecosystem with our newsletter.

Share this post

Enjoyed this post? Please share it on your favorite social network!

Related posts

Read more on updates and advice from the RWX engineering team

See all posts
RWX November 2025 Recap: container image builds, git patching runs, OTEL, and more
CI/CD

RWX November 2025 Recap: container image builds, git patching runs, OTEL, and more

At RWX, we use our own product to rapidly prototype, develop, and ship features all the time. Here's what we've built recently...

Dec 2, 2025
Read now
We deleted our Dockerfiles: a better, faster way to build container images
CI/CD

We deleted our Dockerfiles: a better, faster way to build container images

Two weeks ago, we deleted the Dockerfile for our application, and we deleted the step in our CI pipelines that previously ran docker build.

Nov 24, 2025
Read now
rwx run - development without the push and pull
CI/CD

rwx run - development without the push and pull

Beginning with version v2, rwx run can now launch a build directly from your terminal - local code changes included.

Nov 20, 2025
Read now