buildbot-effects doesn't handle runIf from hercules-ci-effects correctly
## Description
When using `hci-effects.runIf` with `buildbot-effects`, the effect runner fails because it concatenates multiple derivation paths with newlines instead of handling them separately.
## Example flake.nix
```nix
herculesCI = herculesCI: {
onPush.default.outputs.effects = {
deploy = hci-effects.runIf (herculesCI.branch == "master") (
hci-effects.runNixOS {
configuration = ...;
# ...
}
);
};
};
```
## Error
```
error: getting status of '/nix/store/...-nixos-system-....drv
/nix/store/...-effect-nixos-....drv': No such file or directory
subprocess.CalledProcessError: Command '['nix', ..., 'derivation', 'show',
'/nix/store/...-nixos-system-....drv\n/nix/store/...-effect-....drv^*']'
returned non-zero exit status 1.
```
The derivation paths are being joined with `\n` and passed as a single argument to `nix derivation show`.
## Workaround
Use if/else instead of `runIf`:
```nix
if herculesCI.branch == "master" then { deploy = ...; } else { }
```
## Expected behavior
`runIf` should work as documented in hercules-ci-effects.
关闭于 2026-02-02 1 条评论