I'm trying to run non-headless puppeteer for testing a chrome extension in pipelines.
When I google the topic I find quite a few people who are able to get headless puppeteer to work on pipelines but for some reason I am unable to get it to work with non-headless.
The Puppeteer troubleshooting docs say it is possible for TravisCI so it should be possible for pipelines too no?
I have tried lots of different docker images but none of them seem to work. This is my current setup:
image: node:9
pipelines:
branches:
staging:
- step:
script:
- node -v
- yarn -v
- yarn install
- apt update && apt install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
- apt-get install -y xvfb
- export DISPLAY=:99.0
- Xvfb :99 -ac &
- yarn start build.staging
- yarn start test.unit
- yarn start test.e2e.staging
When I attempt this:
export const loadBrowser = async () => {
browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${absDistPath}`,
`--load-extension=${absDistPath}`,
"--user-agent=PuppeteerAgent",
"--no-sandbox",
"--disable-setuid-sandbox"
]
});
The error I get is:
TimeoutError: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r594312
Has anyone managed to get non-headless Puppeteer actually working on Bitbucket Pipelines?