Я делаю непрерывную интеграцию для моего Angular (8) приложения.
Локально, всякий раз, когда я пытаюсь запустить «сборку» для проекта, он работает просто отлично. Но когда мой конвейер в Atlassian Bamboo пытается собрать и запустить тесты, он не может запустить Без головы Chrome. Я нашел много похожих вопросов, но не один с моей точной проблемой или решением.
Это ошибка, которую я получаю:
Невозможно запустить ошибку ChromeHeadless при загрузке общих библиотек: libXcomposite.so.1: невозможно открыть общий объектный файл: такого файла или каталога нет:
Это мой Karma Conf:
module.exports = function (config) {
const process = require('process');
process.env.CHROME_BIN = require('puppeteer').executablePath();
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
...
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/idm-ui'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox',
'--enable-logging'
]
}
},
singleRun: false,
restartOnFileChange: true
});
};
И команда, которую я запускаю, ng test --watch=false
. Кроме того, у меня "puppeteer": "^2.1.1"
в моем package.json
.
Что я здесь не так делаю?