Skip to content

Dynamically reading playwright version in CI #3708

Dynamically reading playwright version in CI

Dynamically reading playwright version in CI #3708

Workflow file for this run

name: "CI"
on:
push:
branches: "*"
pull_request:
env:
cache-version: 1
jobs:
build:
name: "Build"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4.1.7
- name: "Cache NPM dependencies"
uses: actions/cache@v4.0.2
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Build"
run: |
npm run build
- name: "Check non-empty output"
run: |
[ -s dist/appsscript.json ] && [ -s dist/backend.gs ] && [ -s dist/index.html ]
lint:
name: "Lint"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4.1.7
- name: "Cache NPM dependencies"
uses: actions/cache@v4.0.2
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Lint"
run: |
npm run lint
backend-test:
name: "Backend test"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4.1.7
- name: "Cache NPM dependencies"
uses: actions/cache@v4.0.2
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Run tests"
run: |
npm run test:backend
- name: "Upload coverage results"
uses: codecov/codecov-action@v4.5.0
with:
flags: backend
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
get-playwright-version:
name: 'Get Playwright Version'
runs-on: ubuntu-latest
outputs:
playwright-version: ${{ steps.extract_playwright_version.outputs.playwright-version }}
steps:
- name: "Checkout"
uses: actions/checkout@v4.1.1
- name: "Extract @playwright/test version"
id: extract_playwright_version
run: |
playwright_version=$(node -e 'console.log(require("./package-lock.json")["packages"]["node_modules/@playwright/test"].version)')
echo "playwright-version=$playwright_version" >> $GITHUB_OUTPUT
frontend-test:
name: "Frontend test"
runs-on: ubuntu-latest
needs: get-playwright-version
container:
image: mcr.microsoft.com/playwright:v${{ needs.get-playwright-version.outputs.playwright-version }}
steps:
- name: "Checkout"
uses: actions/checkout@v4.1.7
- name: "Cache NPM dependencies"
uses: actions/cache@v4.0.2
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Run tests"
run: |
npm run test:frontend
env:
HOME: /root
- name: "Upload coverage results"
uses: codecov/codecov-action@v4.5.0
with:
flags: frontend
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30