Files
webstudio/.github/workflows/main.yml
T
Ivan Starkov b787e3d8ee experimental: Fix chrome 134 regression bug (#5046)
## Description

https://issues.chromium.org/issues/403708813


## Steps for reproduction

Type in Debug Console 
`ScrollTimeline`
for Chrome  134.0.6998.164  >= version  >= 134.0.6998.0 
This would be non native code


## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2025-03-26 16:27:10 +05:00

152 lines
4.1 KiB
YAML

name: Main workflow
on:
push:
branches:
- main
pull_request:
# cancel in-progress runs on new commits to same PR (gitub.event.number)
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
checks:
timeout-minutes: 20
strategy:
matrix:
environment:
- empty
- development
environment:
name: ${{ matrix.environment }}
env:
DATABASE_URL: postgres://
AUTH_SECRET: test
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
# Will not checkout submodules on empty environment, and will on development
- uses: ./.github/actions/submodules-checkout
with:
submodules-ssh-key: ${{ secrets.PRIVATE_GITHUB_DEPLOY_TOKEN }}
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Pnpm install
run: |
pnpm install
- uses: actions/cache@v4
with:
path: |
./node_modules/.cache/prettier/.prettier-cache
./node_modules/.cache/eslint/.eslint-cache
key: checks-${{ github.sha }}
restore-keys: checks-
- run: echo ===SHA USED=== ${{ github.event.pull_request.head.sha || github.sha }} # todo: remove after check whats happening on main
- run: |
pnpm prettier --cache --check "**/*.{js,md,ts,tsx}"
- name: Lint
run: |
pnpm lint --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslint-cache
- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
playwright-${{ runner.os }}-
- name: Playwright init
run: |
pnpm playwright install
working-directory: packages/sdk-components-animation
- name: Test
run: |
pnpm -r test
- name: Typecheck
run: |
pnpm -r typecheck
check-size:
runs-on: ubuntu-24.04-arm
environment:
name: development
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: ./.github/actions/submodules-checkout
with:
submodules-ssh-key: ${{ secrets.PRIVATE_GITHUB_DEPLOY_TOKEN }}
- uses: ./.github/actions/ci-setup
- run: pnpm --filter "{./fixtures/*}..." build
- uses: actions/github-script@v7
with:
script: |
const assertSize = async (directory, maxSize) => {
let result = ''
await exec.exec('du', ['-sk', directory], {
silent: true,
listeners: {
stdout: (data) => {
result += data.toString()
}
}
})
const size = Number.parseInt(result, 10)
return {
passed: size <= maxSize,
size,
diff: size - maxSize,
directory,
}
}
const results = [
await assertSize('./fixtures/ssg/dist/client', 352),
await assertSize('./fixtures/react-router-netlify/build/client', 368),
await assertSize('./fixtures/webstudio-features/build/client', 1028),
]
for (const result of results) {
if (result.passed) {
console.info(`${result.directory}: ${result.size}kB (${result.diff}kB)`)
} else {
console.info('')
console.error(`${result.directory}: ${result.size}kB (+${result.diff}kB)`)
}
}
if (results.some(result => result.passed === false)) {
console.error('Some fixtures exceeded limits')
process.exit(1)
}