Skip to content

Merge pull request #1408 from skaut/playwright #2985

Merge pull request #1408 from skaut/playwright

Merge pull request #1408 from skaut/playwright #2985

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/[email protected]
- name: "Cache NPM dependencies"
uses: actions/[email protected]
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 }}-
npm-dependencies-${{ runner.os }}-
- 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/[email protected]
- name: "Cache NPM dependencies"
uses: actions/[email protected]
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 }}-
npm-dependencies-${{ runner.os }}-
- 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/[email protected]
- name: "Cache NPM dependencies"
uses: actions/[email protected]
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 }}-
npm-dependencies-${{ runner.os }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Run tests"
run: |
npm run test:backend
- name: "Upload coverage results"
uses: codecov/[email protected]
with:
flags: backend
frontend-test:
name: "Frontend test"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/[email protected]
- name: "Cache NPM dependencies"
uses: actions/[email protected]
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 }}-
npm-dependencies-${{ runner.os }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: Get installed Playwright version
id: playwright-version
run: |
echo "version=$(node -e "console.log(require('./package-lock.json').packages['node_modules/@playwright/test'].version)")"
echo "version=$(node -e "console.log(require('./package-lock.json').packages['node_modules/@playwright/test'].version)")" >> $GITHUB_OUTPUT
- name: Cache playwright binaries
id: playwright-cache
uses: actions/cache@v3
with:
path: "~/.cache/ms-playwright"
key: playwright-binaries-${{ runner.os }}-${{ env.cache-version }}-${{ steps.playwright-version.outputs.version }}
- name: "Install playwright binaries"
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: |
npx playwright install --with-deps
- name: "Install playwright binaries"
if: steps.playwright-cache.outputs.cache-hit == 'true'
run: |
npx playwright install-deps
- name: "Run tests"
run: |
npm run test:frontend
- name: "Upload coverage results"
uses: codecov/[email protected]
with:
flags: frontend
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30