CircleCIでpuppeteerまたはplaywrightのテストを実行するときの覚書

そのままではどちらも動かないので、ちょっと手を入れる必要がありました。

環境

  • Docker image: circleci/node:lts-browsers

問題

CircleCIのコンテナにはいくつかの必要なライブラリが入っていません。

  ● test on "webkit" › should match snapshot [body]

    browserType.launch: Host system is missing dependencies!

      Missing libraries are:
          libgstreamer-1.0.so.0
          libbrotlidec.so.1
          libnotify.so.4
          libvpx.so.5
          libopus.so.0
          libicui18n.so.60
          libicuuc.so.60
          libwoff2dec.so.1.0.2
          libharfbuzz-icu.so.0
          libgstapp-1.0.so.0
          libgstbase-1.0.so.0
          libgstpbutils-1.0.so.0
          libgstaudio-1.0.so.0
          libgsttag-1.0.so.0
          libgstvideo-1.0.so.0
          libgstgl-1.0.so.0
          libgstcodecparsers-1.0.so.0
          libgstfft-1.0.so.0
          libjpeg.so.8
          libenchant.so.1
          libsecret-1.so.0
          libhyphen.so.0
          libGLESv2.so.2

対策

入れましょう。

version: 2
jobs:
  build:
    docker:
      - image: circleci/node:lts-browsers
    working_directory: ~/repo
    steps:
      - checkout

      # Download and cache dependencies
      - restore_cache:
          name: Restore Yarn Package Cache
          keys:
            - yarn-packages-{{ checksum "yarn.lock" }}

      - run: yarn --scripts-prepend-node-path

      - save_cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn

      - run:
          name: E2E test
          command: |
            REACT_APP_API_MODE=development npm run build
            sudo apt-get update
            sudo apt-get 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
            yarn test:e2e:ci

Comment