name: build on: push: branches: - main pull_request: types: [opened, synchronize, reopened, edited] jobs: build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20.x" - name: Cache node modules uses: actions/cache@v4 env: cache-name: cache-node-modules with: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: cache playwright id: playwright-cache uses: actions/cache@v4 with: path: ~/.cache/ms-playwright key: pw-new-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} - name: Install Dependencies run: npm install - name: Bootstrap packages run: npm run bootstrap - name: Lint packages run: npm run lint env: CI: true - name: Build packages run: npm run build env: CI: true - name: Run unit tests run: npm run test env: CI: true - name: Run server run: npm run start:built & npx wait-on http://localhost:3000 env: CI: true - name: Install Playwright run: npm run install-playwright - name: Run Playwright tests working-directory: ./tests run: npx playwright test - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report path: tests/playwright-report/ retention-days: 30 - name: Upload webpack stats artifact (editor) uses: relative-ci/agent-upload-artifact-action@v2 with: webpackStatsFile: ./playground/dist/webpack-stats.json artifactName: relative-ci-artifacts-editor