Skip to content

Add RWX build provider#4836

Open
robinaugh wants to merge 1 commit into
cake-build:developfrom
robinaugh:jason/add-rwx-build-provider
Open

Add RWX build provider#4836
robinaugh wants to merge 1 commit into
cake-build:developfrom
robinaugh:jason/add-rwx-build-provider

Conversation

@robinaugh
Copy link
Copy Markdown

Following https://github.com/orgs/cake-build/discussions/4796, this PR adds RWX as a build provider.

I have already been in contact with @devlead via email and we've set up a Cake organization on RWX. A sample run can be seen here: https://cloud.rwx.com/mint/cake/runs/a8eb7be0436248508544a2c0fda9df08

  • The sample run requires a login (Mattias and the Cake team have access), but runs triggered from this public repository (on main/develop/hotfix* branches) will be publicly accessible and linked from the badge in the README.
  • More documentation on how RWX permissions work with Open Source can be found here.

@robinaugh
Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree company="RWX"

@devlead devlead force-pushed the jason/add-rwx-build-provider branch from 59cab62 to 7742642 Compare May 20, 2026 14:51
Copy link
Copy Markdown
Member

@devlead devlead left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general LGTM 👍 , just a few questions.

Comment thread .rwx/cake.yml Outdated
Comment thread .rwx/cake.yml Outdated
Comment thread src/Cake.Common/Build/Rwx/Data/RwxEnvironmentInfo.cs
@robinaugh robinaugh force-pushed the jason/add-rwx-build-provider branch 2 times, most recently from 29a66b3 to 8521060 Compare May 20, 2026 21:16
Adds Cake.Common.Build.Rwx alongside the 14 existing build providers,
exposing IsRunningOnRwx and BuildSystem.Rwx.Environment.{Run,Task,Actor}
populated from the documented RWX env var contract
(https://www.rwx.com/docs/environment-variables). Detection is via the
RWX env var; RWX does not currently expose a PR identifier so this
provider does not contribute to BuildSystem.IsPullRequest.
@devlead devlead force-pushed the jason/add-rwx-build-provider branch from 8521060 to 84d919b Compare May 20, 2026 21:55

Task("Cake.Common.Build.RwxProvider.Commands")
.Does(() => {
BuildSystem.Rwx.Commands.SetValue("cake_integration_test", "ok");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UploadArtifact works great

Image

But how do we validate SetValue? Could we have an extra task in .rwx/cake.yml that echoes / asserts cake_integration_test ?

/// are written verbatim.
/// </summary>
/// <param name="key">The value key. May not contain path separators or <c>..</c>.</param>
/// <param name="value">The value contents.</param>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at docs, we could have similar methods for env vars
https://www.rwx.com/docs/use#environment-variables

tasks:
  - key: set-env-one
    run: echo hello >> $RWX_ENV/ONE

  - key: set-env-two
    run: echo world >> $RWX_ENV/TWO

  - key: print-env
    use: [set-env-one, set-env-two]
    run: |
      echo $ONE $TWO
      env | grep -E 'ONE|TWO'

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.

2 participants