From 3355a10978bb624fc6e5763e8162022ea940db66 Mon Sep 17 00:00:00 2001 From: Mohammad Bagher Abiyat Date: Wed, 12 Jun 2024 09:30:39 +0330 Subject: [PATCH] init --- .github/workflows/ecosystem-ci-from-pr.yml | 4 ++ ecosystem-ci.ts | 11 ++++-- tests/_selftest.ts | 2 +- types.d.ts | 1 + utils.ts | 46 ++++++++++++++-------- 5 files changed, 42 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ecosystem-ci-from-pr.yml b/.github/workflows/ecosystem-ci-from-pr.yml index 07d4e548..78be2161 100644 --- a/.github/workflows/ecosystem-ci-from-pr.yml +++ b/.github/workflows/ecosystem-ci-from-pr.yml @@ -27,6 +27,9 @@ on: required: true type: string default: "vitejs/vite" + commit: + description: "vite commit sha to use" + type: string suite: description: "testsuite to run. runs all testsuits when `-`." required: false @@ -112,6 +115,7 @@ jobs: pnpm tsx ecosystem-ci.ts --branch ${{ inputs.branchName }} --repo ${{ inputs.repo }} + --commit ${{ inputs.commit }} ${{ inputs.suite }} - id: get-ref if: always() diff --git a/ecosystem-ci.ts b/ecosystem-ci.ts index eefad8ab..72e76eb1 100644 --- a/ecosystem-ci.ts +++ b/ecosystem-ci.ts @@ -25,16 +25,19 @@ cli .action(async (suites, options: CommandOptions) => { const { root, vitePath, workspace } = await setupEnvironment() const suitesToRun = getSuitesToRun(suites, root) - let viteMajor + let viteMajor = 5 if (!options.release) { - await setupViteRepo(options) - await buildVite({ verify: options.verify }) - viteMajor = parseViteMajor(vitePath) + if (!options.commit) { + await setupViteRepo(options) + await buildVite({ verify: options.verify }) + viteMajor = parseViteMajor(vitePath) + } } else { viteMajor = parseMajorVersion(options.release) } const runOptions: RunOptions = { root, + viteCommit: options.commit, vitePath, viteMajor, workspace, diff --git a/tests/_selftest.ts b/tests/_selftest.ts index 5accdda7..0477f62b 100644 --- a/tests/_selftest.ts +++ b/tests/_selftest.ts @@ -17,7 +17,7 @@ export async function test(options: RunOptions) { ) } pkg.scripts.selftestscript = - "[ -d ../../vite/packages/vite/dist ] || (echo 'vite build failed' && exit 1)" + "pnpm vite -v || (echo 'vite build failed' && exit 1)" await fs.promises.writeFile( pkgFile, JSON.stringify(pkg, null, 2), diff --git a/types.d.ts b/types.d.ts index 42213918..09681869 100644 --- a/types.d.ts +++ b/types.d.ts @@ -11,6 +11,7 @@ export interface EnvironmentData { export interface RunOptions { workspace: string root: string + viteCommit?: string vitePath: string viteMajor: number verify?: boolean diff --git a/utils.ts b/utils.ts index 717af909..46e16f69 100644 --- a/utils.ts +++ b/utils.ts @@ -207,6 +207,7 @@ export async function runInRepo(options: RunOptions & RepoOptions) { repo, branch, tag, + viteCommit, commit, skipGit, verify, @@ -260,6 +261,15 @@ export async function runInRepo(options: RunOptions & RepoOptions) { await testCommand?.(pkg.scripts) } let overrides = options.overrides || {} + + if (viteCommit) { + overrides.vite ||= `https://pkg.pr.new/vitejs/vite/vite@${viteCommit}` + + // TODO: continuous releases are not enabled for @vitejs/plugin-legacy is the vite monorepo + // overrides[`@vitejs/plugin-legacy`] ||= + // `https://pkg.pr.new/vitejs/vite/@vitejs/plugin-legacy@${viteCommit}` + } + if (options.release) { if (overrides.vite && overrides.vite !== options.release) { throw new Error( @@ -271,24 +281,26 @@ export async function runInRepo(options: RunOptions & RepoOptions) { } else { overrides.vite ||= `${options.vitePath}/packages/vite` - overrides[`@vitejs/plugin-legacy`] ||= - `${options.vitePath}/packages/plugin-legacy` - - const vitePackageInfo = await getVitePackageInfo(options.vitePath) - // skip if `overrides.rollup` is `false` - if ( - vitePackageInfo.dependencies.rollup?.version && - overrides.rollup !== false - ) { - overrides.rollup = vitePackageInfo.dependencies.rollup.version - } + // overrides[`@vitejs/plugin-legacy`] ||= + // `${options.vitePath}/packages/plugin-legacy` + + if (!viteCommit) { + const vitePackageInfo = await getVitePackageInfo(options.vitePath) + // skip if `overrides.rollup` is `false` + if ( + vitePackageInfo.dependencies.rollup?.version && + overrides.rollup !== false + ) { + overrides.rollup = vitePackageInfo.dependencies.rollup.version + } - // build and apply local overrides - const localOverrides = await buildOverrides(pkg, options, overrides) - cd(dir) // buildOverrides changed dir, change it back - overrides = { - ...overrides, - ...localOverrides, + // build and apply local overrides + const localOverrides = await buildOverrides(pkg, options, overrides) + cd(dir) // buildOverrides changed dir, change it back + overrides = { + ...overrides, + ...localOverrides, + } } } await applyPackageOverrides(dir, pkg, overrides)