[tests] Fix tarball lookup with sha contains 0 (#8552)

This PR fixes an issue when the sha begins with `0` and causes [an error](https://vercel.com/vercel/vercel/EP7fVcXKsoodzWRy3fwG8AoeQcs6) when looking up the tarball:

> Error: ENOENT: no such file or directory, 
> copyfile '/vercel/path0/packages/build-utils/vercel-build-utils-v5.4.2-0251253.tgz' 
>  -> '/vercel/path0/public/tarballs/@vercel/build-utils.tgz'

The fix is to no longer rely on the exact tarball name because we can't guarantee the name from `yarn pack` and instead rely on a pattern for the tarball name.
This commit is contained in:
Steven
2022-09-13 14:08:45 -04:00
committed by GitHub
parent 5abb74eddd
commit 0bafea6d51

View File

@@ -1,6 +1,5 @@
import fs from 'fs/promises'; import fs from 'fs/promises';
import { join, dirname } from 'path'; import { join, dirname } from 'path';
import execa from 'execa';
import { getExampleList } from '../examples/example-list'; import { getExampleList } from '../examples/example-list';
import { mapOldToNew } from '../examples/map-old-to-new'; import { mapOldToNew } from '../examples/map-old-to-new';
@@ -47,10 +46,6 @@ async function main() {
JSON.stringify([...existingExamples, ...oldExamples]) JSON.stringify([...existingExamples, ...oldExamples])
); );
const { stdout: sha } = await execa('git', ['rev-parse', '--short', 'HEAD'], {
cwd: repoRoot,
});
const tarballsDir = join(pubDir, 'tarballs'); const tarballsDir = join(pubDir, 'tarballs');
const packagesDir = join(repoRoot, 'packages'); const packagesDir = join(repoRoot, 'packages');
const packages = await fs.readdir(packagesDir); const packages = await fs.readdir(packagesDir);
@@ -61,12 +56,21 @@ async function main() {
'utf-8' 'utf-8'
); );
const packageJson = JSON.parse(packageJsonRaw); const packageJson = JSON.parse(packageJsonRaw);
const tarballName = `${packageJson.name const files = await fs.readdir(fullDir);
.replace('@', '') const tarballName = files.find(f => /^vercel-.+\.tgz$/.test(f));
.replace('/', '-')}-v${packageJson.version}-${sha.trim()}.tgz`; if (!tarballName) {
throw new Error(
`Expected vercel-*.tgz in ${fullDir} but found ${JSON.stringify(
files,
null,
2
)}`
);
}
const srcTarballPath = join(fullDir, tarballName);
const destTarballPath = join(tarballsDir, `${packageJson.name}.tgz`); const destTarballPath = join(tarballsDir, `${packageJson.name}.tgz`);
await fs.mkdir(dirname(destTarballPath), { recursive: true }); await fs.mkdir(dirname(destTarballPath), { recursive: true });
await fs.copyFile(join(fullDir, tarballName), destTarballPath); await fs.copyFile(srcTarballPath, destTarballPath);
} }
console.log('Completed building static frontend.'); console.log('Completed building static frontend.');