Skip to content

Commit 46f6bc7

Browse files
Copilotjonrohan
andcommitted
Fix Chrome sandbox issues in CI and update workflow
Co-authored-by: jonrohan <54012+jonrohan@users.noreply.github.com>
1 parent 1b12ff3 commit 46f6bc7

2 files changed

Lines changed: 28 additions & 5 deletions

File tree

.github/workflows/nodejs.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ jobs:
44
build:
55
runs-on: ubuntu-latest
66
steps:
7-
- uses: actions/checkout@v2
7+
- uses: actions/checkout@v4
88
- name: Use Node.js
9-
uses: actions/setup-node@v1
9+
uses: actions/setup-node@v4
1010
with:
11-
node-version: '14.x'
11+
node-version: '20.x'
12+
- name: Enable user namespaces
13+
run: sudo sysctl -w kernel.unprivileged_userns_clone=1
1214
- run: npm install
1315
- run: npm run build --if-present
1416
- run: npm test

karma.config.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
1-
process.env.CHROME_BIN = require('chromium').path
1+
// Use system Chrome/Chromium if available, otherwise let Karma find it
2+
// In CI environments, CHROME_BIN should be set or the system Chrome should be in PATH
3+
if (!process.env.CHROME_BIN) {
4+
try {
5+
const chromiumPath = require('chromium').path
6+
if (chromiumPath) {
7+
process.env.CHROME_BIN = chromiumPath
8+
}
9+
} catch (e) {
10+
// If chromium package doesn't work, let Karma use system Chrome
11+
}
12+
}
213

314
module.exports = function (config) {
415
config.set({
@@ -11,7 +22,17 @@ module.exports = function (config) {
1122
port: 9876,
1223
colors: true,
1324
logLevel: config.LOG_INFO,
14-
browsers: ['ChromeHeadless'],
25+
browsers: ['ChromeHeadlessCI'],
26+
customLaunchers: {
27+
ChromeHeadlessCI: {
28+
base: 'ChromeHeadless',
29+
flags: [
30+
'--no-sandbox',
31+
'--disable-gpu',
32+
'--disable-dev-shm-usage'
33+
]
34+
}
35+
},
1536
autoWatch: false,
1637
singleRun: true,
1738
concurrency: Infinity

0 commit comments

Comments
 (0)