Puppeteer is unable to install Chrome headless on jenkins

Discussão em 'Angular' iniciado por Lewis Patterson, Março 12, 2025.

  1. I've upgraded my Angular project, which meant I needed to make a Jenkins agent use Node 18 to work with it.

    The project builds and tests fine locally without issues. However, once I try running this through my Jenkins pipeline, I get this error:


    Task :testUnit


    authentication@1.0.0-15 test:ci ng test --code-coverage --configuration=ci --no-watch --browsers=ChromeHeadless authentication
    ​
    • Generating browser application bundles (phase: setup)... ✔ Browser application bundle generation complete. 12 03 2025 14:47:00.673:WARN [filelist]: Pattern "/home/ec2-user/workspace/ibrary_authentication_angular_15/polyfills.js" does not match any file. 12 03 2025 14:47:00.700:WARN [filelist]: Pattern "/home/ec2-user/workspace/ibrary_authentication_angular_15/polyfills.js" does not match any file. 12 03 2025 14:47:00.707:INFO [karma-server]: Karma v6.4.4 server started at http://localhost:9876/ 12 03 2025 14:47:00.707:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited 12 03 2025 14:47:00.716:INFO [launcher]: Starting browser ChromeHeadless 12 03 2025 14:47:00.724:ERROR [launcher]: Cannot start ChromeHeadless Can not find the binary /home/ec2-user/.cache/puppeteer/chrome/linux-134.0.6998.35/chrome-linux64/chrome Please set env variable CHROME_BIN 12 03 2025 14:47:00.724:ERROR [launcher]: ChromeHeadless stdout: 12 03 2025 14:47:00.724:ERROR [launcher]: ChromeHeadless stderr: ✔ Browser application bundle generation complete. ✔ Browser application bundle generation complete.

    Task :testUnit FAILED
    ​

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':testUnit'.

    Process 'command 'npm'' finished with non-zero exit value 1
    ​

    I've tried upgrading puppetteer and making a custom chrome headless browser in the karma.conf.ci.js which is used by jenkins. It also states the CHROME_BIN location which works on other projects in the older jenkins pipeline.

    Here is my Karma.conf for reference:

    // Karma configuration file, see link for more information
    // https://karma-runner.github.io/1.0/config/configuration-file.html

    process.env.CHROME_BIN = require('puppeteer').executablePath()

    module.exports = function (config) {
    config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
    require('karma-jasmine'),
    require('karma-chrome-launcher'),
    require('karma-jasmine-html-reporter'),
    require('karma-junit-reporter'),
    require('karma-coverage-istanbul-reporter'),
    require('karma-sonarqube-unit-reporter'),
    require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
    clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
    dir: require('path').join(__dirname, '../../coverage'),
    reports: ['html', 'lcovonly', 'text-summary'],
    fixWebpackSourcePaths: true
    },
    junitReporter: {
    outputDir: '../../test-results',
    outputFile: 'test-results.xml',
    },
    sonarQubeUnitReporter: {
    outputFile: '../../reports/ut_report.xml',
    overrideTestDescription: true,
    testPath: './projects/authentication/src',
    testPaths: ['./projects/authentication/src'],
    testFilePattern: '.spec.ts',
    useBrowserName: false
    },
    reporters: ['progress', 'kjhtml', 'junit', 'coverage-istanbul', 'sonarqubeUnit'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['ChromeHeadlessCI'],
    customLaunchers: {
    ChromeHeadlessCI: {
    base: 'ChromeHeadless',
    flags: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],
    },
    }, singleRun: true,
    restartOnFileChange: true,
    files: [
    require('path').join(__dirname, '../../polyfills.js')
    ]
    });
    };



    If anyone has any idea of what is wrong or how I can get around this it would be really helpful

    Continue reading...

Compartilhe esta Página