truthtaicom's picture
Upload folder using huggingface_hub
4b0794d verified
name: Install Playwright
description: Install Playwright and dependencies with cache
# https://github.com/microsoft/playwright/issues/7249
inputs:
working-directory:
description: Where to install Playwright
default: ./
browsers:
description: Browsers to install
default: chromium webkit firefox
outputs:
version:
description: Installed version of Playwright
value: ${{ steps.version.outputs.version }}
cache-hit:
description: Whether cache for Playwright was found
value: ${{ steps.cache.outputs.cache-hit }}
runs:
using: composite
steps:
- name: Get Playwright version
uses: actions/github-script@v7
id: version
with:
script: |
const fs = require('fs');
const path = require('path');
// Get working directory
const workingDirectory = "${{ inputs.working-directory }}";
console.debug("Specified working directory:", workingDirectory);
if (workingDirectory) process.chdir(workingDirectory);
console.debug("Actual working directory:", process.cwd());
// Read package.json
let version = "";
try {
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
version = (
packageJson.devDependencies?.['@playwright/test'] ||
packageJson.dependencies?.['@playwright/test'] ||
packageJson.dependencies?.['playwright'] ||
packageJson.devDependencies?.['playwright']
)?.replace(/[\^~]/g, '');
} catch (error) {
console.log(error.message);
}
console.debug("Version:", version);
if (version) {
core.exportVariable("PLAYWRIGHT_VERSION", version);
core.setOutput("version", version);
} else core.setFailed("Couldn't get Playwright version");
- name: Cache Playwright
id: cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: Install Playwright and its dependencies
shell: bash
if: steps.cache.outputs.cache-hit != 'true'
working-directory: ${{ inputs.working-directory }}
run: npx playwright install ${{ inputs.browsers }} --with-deps
- name: Install just Playwright's dependencies
shell: bash
if: steps.cache.outputs.cache-hit == 'true'
working-directory: ${{ inputs.working-directory }}
run: npx playwright install-deps