Skip to content

Commit 48750d8

Browse files
author
Andrzej J Skalski
committed
fix: don't guess env vars
1 parent dbeba21 commit 48750d8

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

src/remote/action.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func (c *Client) buildCommand(target *core.BuildTarget, inputRoot *pb.Directory,
116116
Arguments: []string{
117117
"fetch", strings.Join(target.AllURLs(state), " "), "verify", strings.Join(target.Hashes, " "),
118118
},
119-
EnvironmentVariables: c.buildEnv(target, map[string]string{}, false),
119+
EnvironmentVariables: c.buildEnv(target, map[string]string{}, process.NoSandbox),
120120
OutputPaths: outs,
121121
}, nil
122122
}
@@ -128,7 +128,7 @@ func (c *Client) buildCommand(target *core.BuildTarget, inputRoot *pb.Directory,
128128
return &pb.Command{
129129
Platform: c.targetPlatformProperties(target),
130130
Arguments: c.sandboxArgs(target.Sandbox, process.BashCommand(c.shellPath, commandPrefix+cmd, state.Config.Build.ExitOnError)),
131-
EnvironmentVariables: c.buildEnv(target, c.stampedBuildEnvironment(state, target, inputRoot, stamp, isTest || isRun), target.Sandbox),
131+
EnvironmentVariables: c.buildEnv(target, c.stampedBuildEnvironment(state, target, inputRoot, stamp, isTest || isRun), process.NewSandboxConfig(target.Sandbox, target.Sandbox)),
132132
OutputPaths: outs,
133133
}, err
134134
}
@@ -168,7 +168,7 @@ func (c *Client) buildTestCommand(state *core.BuildState, target *core.BuildTarg
168168
},
169169
},
170170
Arguments: c.sandboxArgs(target.Test.Sandbox, process.BashCommand(c.shellPath, commandPrefix+cmd, state.Config.Build.ExitOnError)),
171-
EnvironmentVariables: c.buildEnv(nil, core.TestEnvironment(state, target, ".", run), target.Test.Sandbox),
171+
EnvironmentVariables: c.buildEnv(nil, core.TestEnvironment(state, target, ".", run), process.NewSandboxConfig(target.Test.Sandbox, target.Test.Sandbox)),
172172
OutputPaths: paths,
173173
}, err
174174
}
@@ -182,7 +182,7 @@ func (c *Client) buildRunCommand(state *core.BuildState, target *core.BuildTarge
182182
return &pb.Command{
183183
Platform: c.platform,
184184
Arguments: outs,
185-
EnvironmentVariables: c.buildEnv(target, core.GeneralBuildEnvironment(state), false),
185+
EnvironmentVariables: c.buildEnv(target, core.GeneralBuildEnvironment(state), process.NoSandbox),
186186
}, nil
187187
}
188188

@@ -588,14 +588,20 @@ func (c *Client) sandboxArgs(sandbox bool, args []string) []string {
588588
}
589589

590590
// buildEnv translates the set of environment variables for this target to a proto.
591-
func (c *Client) buildEnv(target *core.BuildTarget, env core.BuildEnv, sandbox bool) []*pb.Command_EnvironmentVariable {
592-
if sandbox {
591+
func (c *Client) buildEnv(target *core.BuildTarget, env core.BuildEnv, sandbox process.SandboxConfig) []*pb.Command_EnvironmentVariable {
592+
if sandbox != process.NoSandbox {
593593
env["SANDBOX"] = "true"
594594
if c.state.Config.Sandbox.Tool != "" {
595-
// Mirror what local execution sets so the sandbox tool sees the same interface.
596-
// SHARE_NETWORK/SHARE_MOUNT=0 means "don't share" i.e. sandbox that namespace.
597-
env["SHARE_NETWORK"] = "0"
598-
env["SHARE_MOUNT"] = "0"
595+
shareNetwork := "1"
596+
if sandbox.Network {
597+
shareNetwork = "0"
598+
}
599+
shareMount := "1"
600+
if sandbox.Mount {
601+
shareMount = "0"
602+
}
603+
env["SHARE_NETWORK"] = shareNetwork
604+
env["SHARE_MOUNT"] = shareMount
599605
}
600606
}
601607
if target != nil && target.IsBinary {

0 commit comments

Comments
 (0)