From a0ea3280137526dadfc32998bdefe41d88c76b2a Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 5 May 2023 09:58:29 -0600 Subject: [PATCH] build: fix pnpm pptr postinstall (#12450) * chore: fix chrome not found in jest * chore: explicitly require deps for stealth plugin --- .devcontainer/devcontainer.json | 6 +++--- .dockerignore | 4 ++++ .github/workflows/test.yml | 4 ++++ .gitpod.yml | 2 +- Dockerfile | 6 ++++-- lib/utils/puppeteer.js | 2 +- package.json | 2 ++ pnpm-lock.yaml | 6 ++++++ 8 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index da1d029e04..519084eead 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -39,14 +39,14 @@ "onCreateCommand": "sudo apt-get update && export DEBIAN_FRONTEND=noninteractive && sudo apt-get -y install --no-install-recommends ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libexpat1 libgbm1 libglib2.0-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils redis-server && sudo apt-get autoremove -y && sudo apt-get clean -y && sudo rm -rf /var/lib/apt/lists/*", - "updateContentCommand": "pnpm -i && pnpm -i -C docs", + "updateContentCommand": "pnpm i && pnpm i -C docs && pnpm rb", // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "pnpm -i && pnpm -i -C docs", + "postCreateCommand": "pnpm i && pnpm i -C docs && pnpm rb", // Disable auto start dev env since codespaces sometimes fails to attach to the terminal // "postAttachCommand": { - // "app": "pnpm -i", + // "app": "pnpm i", // // "docs": "pnpm run docs:dev" // }, diff --git a/.dockerignore b/.dockerignore index ef777279a7..a4e9531ab3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ +# folders .devcontainer .github .idea @@ -11,6 +12,8 @@ coverage docs node_modules test + +# files .codecov.yml .dockerignore .editorconfig @@ -18,6 +21,7 @@ test .eslint* .gitignore .gitpod.yml +.markdownlint.jsonc .prettier* .(yarn|npm|nvm)rc *.md diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 525cea1a29..eae7727b08 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,6 +49,8 @@ jobs: cache: 'pnpm' - name: Install dependencies (pnpm) run: pnpm i + - name: Run postinstall script for dependencies + run: pnpm rb - name: Test all and generate coverage run: pnpm run jest:coverage env: @@ -99,6 +101,8 @@ jobs: cache: 'pnpm' - name: Install dependencies (pnpm) run: pnpm i + - name: Run postinstall script for dependencies + run: pnpm rb - name: Install Chromium if: ${{ matrix.chromium.dependency != '' }} # 'chromium-browser' from Ubuntu APT repo is a dummy package. Its version (85.0.4183.83) means diff --git a/.gitpod.yml b/.gitpod.yml index 8a6362535f..f7c01281c8 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -14,7 +14,7 @@ tasks: sudo apt update sudo apt install -y ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libexpat1 libgbm1 libglib2.0-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-util sudo apt install -y redis-server - init: pnpm -i && pnpm -i -C docs + init: pnpm i && pnpm i -C docs && pnpm rb - name: app command: pnpm run dev openMode: tab-after diff --git a/Dockerfile b/Dockerfile index 13761810f0..3d6a65c5d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,8 @@ RUN \ set -ex && \ export PUPPETEER_SKIP_DOWNLOAD=true && \ corepack enable pnpm && \ - pnpm install --prod --frozen-lockfile + pnpm install --prod --frozen-lockfile && \ + pnpm rb # --------------------------------------------------------------------------------------------------------------------- @@ -100,7 +101,8 @@ RUN \ echo 'Downloading Chromium...' && \ unset PUPPETEER_SKIP_DOWNLOAD && \ corepack enable pnpm && \ - pnpm add puppeteer@$(cat /app/.puppeteer_version) --save-prod ; \ + pnpm add puppeteer@$(cat /app/.puppeteer_version) --save-prod && \ + pnpm rb ; \ else \ mkdir -p /app/node_modules/.cache/puppeteer ; \ fi; diff --git a/lib/utils/puppeteer.js b/lib/utils/puppeteer.js index 6ebfc8888b..e1f1d74551 100644 --- a/lib/utils/puppeteer.js +++ b/lib/utils/puppeteer.js @@ -20,7 +20,7 @@ module.exports = async (extraOptions = {}) => { const { addExtra } = require('puppeteer-extra'); puppeteer = addExtra(puppeteer); - // workaround for vercel/nft #54 and #283 + // workaround for vercel/nft #54, #283, #304 require('puppeteer-extra-plugin-stealth/evasions/chrome.app'); require('puppeteer-extra-plugin-stealth/evasions/chrome.csi'); require('puppeteer-extra-plugin-stealth/evasions/chrome.loadTimes'); diff --git a/package.json b/package.json index 6658c79255..6103fb2d3d 100644 --- a/package.json +++ b/package.json @@ -118,6 +118,8 @@ "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", + "puppeteer-extra-plugin-user-data-dir": "2.4.1", + "puppeteer-extra-plugin-user-preferences": "2.4.1", "query-string": "7.1.3", "rand-user-agent": "1.0.109", "re2": "1.18.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf982ad269..7a59dca6e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,6 +133,12 @@ dependencies: puppeteer-extra-plugin-stealth: specifier: 2.11.2 version: 2.11.2(puppeteer-extra@3.3.6) + puppeteer-extra-plugin-user-data-dir: + specifier: 2.4.1 + version: 2.4.1(puppeteer-extra@3.3.6) + puppeteer-extra-plugin-user-preferences: + specifier: 2.4.1 + version: 2.4.1(puppeteer-extra@3.3.6) query-string: specifier: 7.1.3 version: 7.1.3