name: DevTools CI # Declare default permissions as read only. permissions: read-all on: pull_request: types: [labeled] concurrency: group: devtools-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build-puppeteer: name: Build Puppeteer runs-on: ubuntu-latest if: contains(github.event.label.name, 'devtools') steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Set up Node.js uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 with: cache: npm node-version: lts/* - name: Install dependencies run: npm ci env: PUPPETEER_SKIP_DOWNLOAD: true - name: Build Puppeteer run: | npm run build --workspace @puppeteer/browsers npm run build --workspace puppeteer-core npm run build --workspace puppeteer - name: Pack Puppeteer run: | npm pack --workspace @puppeteer/browsers npm pack --workspace puppeteer-core npm pack --workspace puppeteer - name: Upload Puppeteer build uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: puppeteer-build if-no-files-found: error path: puppeteer-*.tgz devtools-tests: name: DevTools tests needs: build-puppeteer runs-on: ubuntu-latest steps: - name: Download Puppeteer build uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: puppeteer-build - name: Set up Node.js uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 with: node-version: lts/* - name: Checkout depot_tools run: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - name: Add depot_tools to path run: echo $(realpath depot_tools) >> $GITHUB_PATH - name: Fetch devtools-frontend run: fetch devtools-frontend - name: Sync gclient working-directory: devtools-frontend run: gclient sync - name: Install Puppeteer working-directory: devtools-frontend run: | puppeteer_pkgs=(../puppeteer-*.tgz) tar -xf ${puppeteer_pkgs[1]} --strip-components 1 -C node_modules/@puppeteer/browsers tar -xf ${puppeteer_pkgs[2]} --strip-components 1 -C node_modules/puppeteer-core - name: Generate targets working-directory: devtools-frontend run: gn gen out/Default --args='devtools_skip_typecheck=true' - name: Run tests working-directory: devtools-frontend run: npm run auto-e2etest