diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 4577db0..b21d45b 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -23,6 +23,19 @@ jobs: uses: actions/setup-node@v1 with: node-version: 18.x + - name: Set CHROME_BIN (macOS) + if: startsWith(matrix.os, 'macos') + run: echo "CHROME_BIN=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" >> $GITHUB_ENV + - name: Install Chromium runtime deps (Linux) + if: startsWith(matrix.os, 'ubuntu') + run: | + sudo apt-get update + common="libxkbcommon0 libgbm1 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libnss3 libnspr4 libx11-6 libx11-xcb1 libxext6 libxshmfence1 libdrm2" + if apt-cache show libatk1.0-0 >/dev/null 2>&1; then + sudo apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libasound2 libatspi2.0-0 libglib2.0-0 libgtk-3-0 $common + else + sudo apt-get install -y libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libasound2t64 libatspi2.0-0t64 libglib2.0-0t64 libgtk-3-0t64 $common + fi - name: npm install, build, and test run: | npm install diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index df8ce77..a120ddc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,6 +18,15 @@ jobs: node-version: 18 registry-url: https://registry.npmjs.org/ cache: npm + - name: Install Chromium runtime deps (Linux) + run: | + sudo apt-get update + common="libxkbcommon0 libgbm1 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libnss3 libnspr4 libx11-6 libx11-xcb1 libxext6 libxshmfence1 libdrm2" + if apt-cache show libatk1.0-0 >/dev/null 2>&1; then + sudo apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libasound2 libatspi2.0-0 libglib2.0-0 libgtk-3-0 $common + else + sudo apt-get install -y libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libasound2t64 libatspi2.0-0t64 libglib2.0-0t64 libgtk-3-0t64 $common + fi - run: npm ci - run: npm test - run: npm version ${TAG_NAME} --git-tag-version=false @@ -42,6 +51,15 @@ jobs: registry-url: https://npm.pkg.github.com cache: npm scope: '@github' + - name: Install Chromium runtime deps (Linux) + run: | + sudo apt-get update + common="libxkbcommon0 libgbm1 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libnss3 libnspr4 libx11-6 libx11-xcb1 libxext6 libxshmfence1 libdrm2" + if apt-cache show libatk1.0-0 >/dev/null 2>&1; then + sudo apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libasound2 libatspi2.0-0 libglib2.0-0 libgtk-3-0 $common + else + sudo apt-get install -y libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libasound2t64 libatspi2.0-0t64 libglib2.0-0t64 libgtk-3-0t64 $common + fi - run: npm ci - run: npm test - run: npm version ${TAG_NAME} --git-tag-version=false diff --git a/karma.config.cjs b/karma.config.cjs index 904ae16..09b90e9 100644 --- a/karma.config.cjs +++ b/karma.config.cjs @@ -1,4 +1,4 @@ -process.env.CHROME_BIN = require('chromium').path +process.env.CHROME_BIN = process.env.CHROME_BIN || require('chromium').path module.exports = function(config) { config.set({ @@ -11,7 +11,13 @@ module.exports = function(config) { port: 9876, colors: true, logLevel: config.LOG_INFO, - browsers: ['ChromeHeadless'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox', '--disable-setuid-sandbox'], + }, + }, + browsers: ['ChromeHeadlessNoSandbox'], autoWatch: false, singleRun: true, concurrency: Infinity diff --git a/package-lock.json b/package-lock.json index 22f170b..7dfcaad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3999,10 +3999,11 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4133,9 +4134,9 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": {