name: DevTools CI # Declare default permissions as read only. permissions: read-all on: pull_request: types: [labeled] concurrency: group: ${{ 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@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - name: Set up Node.js uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.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@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 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@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.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[0]} --strip-components 1 -C node_modules/puppeteer 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