From 3355a10978bb624fc6e5763e8162022ea940db66 Mon Sep 17 00:00:00 2001 From: Mohammad Bagher Abiyat Date: Wed, 12 Jun 2024 09:30:39 +0330 Subject: [PATCH 1/3] 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) From fdf74ef483615154ae618c7186544c27c7c04f40 Mon Sep 17 00:00:00 2001 From: Mohammad Bagher Abiyat Date: Wed, 12 Jun 2024 09:46:23 +0330 Subject: [PATCH 2/3] fix audit --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index ee847870..d532e062 100644 --- a/package.json +++ b/package.json @@ -61,5 +61,10 @@ "simple-git-hooks": "^2.11.1", "tsx": "^4.15.1", "typescript": "^5.4.5" + }, + "pnpm": { + "overrides": { + "braces@<3.0.3": ">=3.0.3" + } } } From d580963a31666d022f33dc713a52abc1a279ec19 Mon Sep 17 00:00:00 2001 From: Mohammad Bagher Abiyat Date: Wed, 12 Jun 2024 09:48:00 +0330 Subject: [PATCH 3/3] pnpm lock --- pnpm-lock.yaml | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f308ec05..74afd8de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + braces@<3.0.3: '>=3.0.3' + importers: .: @@ -388,10 +391,6 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -575,10 +574,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1349,10 +1344,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -1599,10 +1590,6 @@ snapshots: dependencies: flat-cache: 3.1.0 - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -1793,7 +1780,7 @@ snapshots: micromatch@4.0.5: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 micromatch@4.0.7: