vite-ecosystem-ci-rolldown #111
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # integration tests for the vite ecosystem against rolldown - scheduled digest | |
| # vite stays on main and rolldown is overridden with its pkg.pr.new preview, | |
| # results are posted to the rolldown discord channel | |
| name: vite-ecosystem-ci-rolldown | |
| env: | |
| # 7 GiB by default on GitHub, setting to 6 GiB | |
| # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources | |
| NODE_OPTIONS: --max-old-space-size=6144 | |
| # configure corepack to be strict but not download newer versions or change anything | |
| COREPACK_DEFAULT_TO_LATEST: 0 | |
| COREPACK_ENABLE_AUTO_PIN: 0 | |
| COREPACK_ENABLE_STRICT: 1 | |
| # see https://turbo.build/repo/docs/telemetry#how-do-i-opt-out | |
| TURBO_TELEMETRY_DISABLED: 1 | |
| DO_NOT_TRACK: 1 | |
| on: | |
| schedule: | |
| - cron: "0 4 * * 1-5" # monday to friday 4AM UTC | |
| workflow_dispatch: | |
| inputs: | |
| rolldownRef: | |
| description: "rolldown ref to test from pkg.pr.new (`main` = latest)" | |
| required: false | |
| type: string | |
| default: main | |
| sendDiscordReport: | |
| description: "send results to discord" | |
| type: boolean | |
| jobs: | |
| test-ecosystem: | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| suite: | |
| - analogjs | |
| - astro | |
| # - histoire # disabled temporarily | |
| # - hydrogen # disabled until they complete they migration back to Vite | |
| # - iles # disabled until its CI is fixed | |
| # - ladle # disabled until its CI is fixed | |
| - laravel | |
| - marko | |
| - module-federation | |
| - nuxt | |
| # - one # disabled until we figured out how to support bun | |
| # - nx # disabled temporarily | |
| - quasar | |
| - qwik | |
| # - rakkas # disabled temporarily | |
| - react-router | |
| # - redwoodjs # disabled temporarily | |
| - storybook | |
| - sveltekit | |
| - tanstack-start | |
| - unocss | |
| - vike | |
| - vite-environment-examples | |
| - vite-plugin-pwa | |
| - vite-plugin-react | |
| - vite-plugin-svelte | |
| - vite-plugin-vue | |
| - vite-plugin-cloudflare | |
| - vite-plugin-rsc | |
| - vite-setup-catalogue | |
| - vitepress | |
| - vitest | |
| - vuepress | |
| - waku | |
| fail-fast: false | |
| permissions: | |
| contents: read # to clone the repo | |
| steps: | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24.15.0 | |
| id: setup-node | |
| - run: corepack enable | |
| - run: pnpm --version | |
| - run: pnpm i --frozen-lockfile | |
| # Resolve the rolldown ref to a concrete commit up front, so the tested sha | |
| # and the reported sha stay the same even if main moves during the run. | |
| - id: resolve-rolldown | |
| env: | |
| ROLLDOWN_REF: ${{ inputs.rolldownRef || 'main' }} | |
| run: | | |
| key=$(curl -fsSIL "https://pkg.pr.new/rolldown@$ROLLDOWN_REF" | tr -d '\r' | awk -F': ' 'tolower($1) == "x-commit-key" { print $2 }') | |
| sha="${key##*:}" | |
| if [ -z "$sha" ]; then echo "could not resolve rolldown ref: $ROLLDOWN_REF"; exit 1; fi | |
| echo "sha=$sha" >> "$GITHUB_OUTPUT" | |
| echo "resolved rolldown@$ROLLDOWN_REF -> $sha" | |
| - run: >- | |
| node ecosystem-ci.ts | |
| --rolldown-ref "$ROLLDOWN_REF" | |
| "$SUITE" | |
| id: ecosystem-ci-run | |
| env: | |
| ROLLDOWN_REF: ${{ steps.resolve-rolldown.outputs.sha }} | |
| SUITE: ${{ matrix.suite }} | |
| - if: always() && (inputs.sendDiscordReport || github.event_name != 'workflow_dispatch') | |
| run: node discord-webhook.ts | |
| env: | |
| WORKFLOW_NAME: rolldown | |
| REF_TYPE: branch | |
| REF: main | |
| REPO: vitejs/vite | |
| ROLLDOWN_REF: ${{ steps.resolve-rolldown.outputs.sha }} | |
| SUITE: ${{ matrix.suite }} | |
| STATUS: ${{ job.status }} | |
| DISCORD_WEBHOOK_URL: ${{ secrets.ROLLDOWN_DISCORD_WEBHOOK_URL }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |