Skip to content

Commit 955c7b2

Browse files
committed
Add CODETRACER_ELECTRON_ARGS parsinge for electron launcher
This is needed for the ui tests to run in Github. We need to pass the `--no-sandbox` argument to electron. In the previous version of the code the code path used to start electron was not doing that. ci/test/ui-tests.sh: Add CODETRACER_ELECTRON_ARGS=--no-sandbox Signed-off-by: Tzanko Matev <[email protected]>
1 parent 4b64c73 commit 955c7b2

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

ci/test/ui-tests.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,13 @@ CODETRACER_E2E_CT_PATH="$(pwd)/src/build/bin/ct"
2727
LINKS_PATH_DIR="$(pwd)/src/build"
2828
NIX_CODETRACER_EXE_DIR="$(pwd)/src/build"
2929
CODETRACER_LINKS_PATH="$(pwd)/src/build"
30+
CODETRACER_ELECTRON_ARGS="--no-sandbox"
3031

3132
export CODETRACER_E2E_CT_PATH
3233
export LINKS_PATH_DIR
3334
export NIX_CODETRACER_EXE_DIR
3435
export CODETRACER_LINKS_PATH
36+
export CODETRACER_ELECTRON_ARGS
3537

3638
pushd ui-tests
3739
nix develop --command ./ci.sh

src/ct/launch/electron.nim

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,24 +89,33 @@ when defined(posix):
8989

9090
proc wrapElectron*(args: seq[string]) =
9191
let startIndex = getEnv("CODETRACER_START_INDEX", "") == "1"
92+
# Preserve custom Electron CLI overrides (e.g. --no-sandbox for CI environments).
93+
let optionalElectronArgs = getEnv("CODETRACER_ELECTRON_ARGS", "").splitWhitespace()
9294

9395
# internal ct runs should be normal, not wrapping electron again
9496
putEnv("CODETRACER_WRAP_ELECTRON", "")
9597
putEnv("CODETRACER_START_INDEX", "")
9698

97-
let execvArgsCount = if startIndex: args.len + 2 else: args.len + 1
99+
let totalArgs = args.len + optionalElectronArgs.len
100+
let execvArgsCount = if startIndex: totalArgs + 2 else: totalArgs + 1
98101

99102
# copied and adapted from nim forum: nucky9 and Araq:
100103
# https://forum.nim-lang.org/t/7415#47044
101104
var execvArgs = cast[cstringArray](alloc0((execvArgsCount + 1) * sizeof(cstring)))
102105
execvArgs[0] = electronExe.cstring
103-
for i, arg in args:
104-
execvArgs[i + 1] = arg.cstring
106+
var argIndex = 1
107+
for arg in args:
108+
execvArgs[argIndex] = arg.cstring
109+
inc argIndex
110+
for arg in optionalElectronArgs:
111+
execvArgs[argIndex] = arg.cstring
112+
inc argIndex
105113

106114
if startIndex:
107-
execvArgs[execvArgsCount - 1] = electronIndexPath.cstring
115+
execvArgs[argIndex] = electronIndexPath.cstring
116+
inc argIndex
108117

109-
execvArgs[execvArgsCount] = nil
118+
execvArgs[argIndex] = nil
110119

111120
discard execv(
112121
electronExe.cstring,

0 commit comments

Comments
 (0)