Skip to content

Commit

Permalink
Revert "Revert "Use turbo for packing files in test setup (vercel#44074
Browse files Browse the repository at this point in the history
…)""

This reverts commit fd8c119.
  • Loading branch information
jankaifer committed Jan 4, 2023
1 parent fd8c119 commit 4bda29d
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 5 deletions.
6 changes: 5 additions & 1 deletion .github/actions/next-stats-action/package.json
@@ -1,6 +1,9 @@
{
"private": true,
"main": "src/index.js",
"scripts": {
"turbo": "turbo"
},
"dependencies": {
"async-sema": "^3.1.0",
"fs-extra": "^8.1.0",
Expand All @@ -12,6 +15,7 @@
"prettier": "^1.18.2",
"pretty-bytes": "^5.3.0",
"pretty-ms": "^5.0.0",
"semver": "7.3.4"
"semver": "7.3.4",
"turbo": "1.6.3"
}
}
48 changes: 44 additions & 4 deletions .github/actions/next-stats-action/src/prepare/repo-setup.js
Expand Up @@ -10,6 +10,18 @@ const mockTrace = () => ({
traceChild: () => mockTrace(),
})

let turboRepoRoot = path.join(__dirname, '..', '..', '..', '..', '..')

// stats-action runs this code without access to the original repo.
// In that case we just use the temporary directory (everything is temporary anyway in CI)
if (turboRepoRoot === '/') {
turboRepoRoot = path.join(__dirname, '..', '..')
}

/** Save turbo cache to persistent storage */
const turboCacheLocation = path.join(turboRepoRoot, 'node_modules/.cache/turbo')
const packedPkgsDir = path.join(turboRepoRoot, 'test/tmp/packedPkgs')

module.exports = (actionInfo) => {
return {
async cloneRepo(repoPath = '', dest = '') {
Expand Down Expand Up @@ -81,9 +93,15 @@ module.exports = (actionInfo) => {
await rootSpan
.traceChild('prepare packages for packing')
.traceAsyncFn(async () => {
await fs.ensureDir(packedPkgsDir)
const repoData = require(path.join(repoDir, 'package.json'))

for (const pkg of pkgs) {
const pkgPath = path.join(repoDir, 'packages', pkg)
const packedPkgPath = path.join(pkgPath, `${pkg}-packed.tgz`)
const packedPkgPath = path.join(
packedPkgsDir,
`${pkg}-packed.tgz`
)

const pkgDataPath = path.join(pkgPath, 'package.json')
if (!fs.existsSync(pkgDataPath)) {
Expand All @@ -103,7 +121,8 @@ module.exports = (actionInfo) => {
}

for (const pkg of pkgDatas.keys()) {
const { pkgDataPath, pkgData } = pkgDatas.get(pkg)
const { pkgDataPath, pkgData, pkgPath, packedPkgPath } =
pkgDatas.get(pkg)

for (const pkg of pkgDatas.keys()) {
const { packedPkgPath } = pkgDatas.get(pkg)
Expand Down Expand Up @@ -139,6 +158,27 @@ module.exports = (actionInfo) => {
}
}

// Turbo requires package manager specification
pkgData.packageManager =
pkgData.packageManager || repoData.packageManager

pkgData.scripts = {
...pkgData.scripts,
'test-pack': `yarn pack -f ${packedPkgPath}`,
}

await fs.writeJSON(path.join(pkgPath, 'turbo.json'), {
pipeline: {
'test-pack': {
outputs: [packedPkgPath],
inputs: ['*', '!node_modules/', '!.turbo/'],
},
},
})

// Turbo requires pnpm-lock.yaml that is not empty
await fs.writeFile(path.join(pkgPath, 'pnpm-lock.yaml'), '')

await fs.writeFile(
pkgDataPath,
JSON.stringify(pkgData, null, 2),
Expand All @@ -157,9 +197,9 @@ module.exports = (actionInfo) => {
await packingSpan
.traceChild(`pack ${pkgName}`)
.traceAsyncFn(async () => {
const { pkg, pkgPath } = pkgDatas.get(pkgName)
const { pkgPath } = pkgDatas.get(pkgName)
await exec(
`cd ${pkgPath} && yarn pack -f '${pkg}-packed.tgz'`,
`pnpm run --dir="${turboRepoRoot}" turbo run test-pack --cache-dir="${turboCacheLocation}" --cwd="${pkgPath}"`,
true
)
})
Expand Down
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -12,6 +12,7 @@
"build": "turbo run build",
"lerna": "lerna",
"dev": "turbo run dev --parallel",
"turbo": "turbo",
"test-types": "pnpm tsc",
"test-unit": "pnpm jest test/unit/",
"test-dev": "cross-env NEXT_TEST_MODE=dev pnpm testheadless",
Expand Down

0 comments on commit 4bda29d

Please sign in to comment.