ci: fixed versioning (#5214)
* chore(deps): add lerna-lite * feat: update-1 * feat(db-mongodb): update 2 * chore: lerna init * chore: add version option to lerna config * chore(ci): add gh usernames to changelog and user root package.json for version * chore(ci): whitelist poc branches * chore(ci): add contributors section * chore(ci): use turbo for prepublishOnly scripts, enable caching * chore(deps): update turborepo, add execa * feat(plugin-stripe): adjust type import * chore: remove lerna-lite * chore(ci): new and improved release script for fixed versioning * chore: remove unused lerna-lite packages * chore: sync root package.json version * chore: remove remnants of bundler packages * chore(plugin-seo): update packagea.json from main, disable build * chore: disable turbo caching * chore(ci): update release script * chore: sync pnpm-lock.yaml * chore: ci cleanup
This commit is contained in:
@@ -1,32 +1,17 @@
|
||||
import path from 'path'
|
||||
import fse from 'fs-extra'
|
||||
import chalk from 'chalk'
|
||||
import chalkTemplate from 'chalk-template'
|
||||
import simpleGit from 'simple-git'
|
||||
import path from 'path'
|
||||
|
||||
const git = simpleGit()
|
||||
const packagesDir = path.resolve(__dirname, '../../packages')
|
||||
|
||||
export type PackageDetails = {
|
||||
commitMessage: string
|
||||
name: string
|
||||
newCommits: number
|
||||
shortName: string
|
||||
packagePath: string
|
||||
prevGitTag: string
|
||||
prevGitTagHash: string
|
||||
publishedVersion: string
|
||||
publishDate: string
|
||||
version: string
|
||||
}
|
||||
|
||||
export const getPackageDetails = async (pkg?: string): Promise<PackageDetails[]> => {
|
||||
let packageDirs: string[] = []
|
||||
if (pkg) {
|
||||
packageDirs = fse.readdirSync(packagesDir).filter((d) => d === pkg)
|
||||
} else {
|
||||
packageDirs = fse.readdirSync(packagesDir).filter((d) => d !== 'eslint-config-payload')
|
||||
}
|
||||
export const getPackageDetails = async (): Promise<PackageDetails[]> => {
|
||||
const packageDirs = fse.readdirSync(packagesDir).filter((d) => d !== 'eslint-config-payload')
|
||||
|
||||
const packageDetails = await Promise.all(
|
||||
packageDirs.map(async (dirName) => {
|
||||
@@ -34,33 +19,10 @@ export const getPackageDetails = async (pkg?: string): Promise<PackageDetails[]>
|
||||
const isPublic = packageJson.private !== true
|
||||
if (!isPublic) return null
|
||||
|
||||
// Get published version from npm
|
||||
const json = await fetch(`https://registry.npmjs.org/${packageJson.name}`).then((res) =>
|
||||
res.json(),
|
||||
)
|
||||
|
||||
const publishedVersion = json?.['dist-tags']?.latest
|
||||
const publishDate = json?.time?.[publishedVersion]
|
||||
|
||||
const prevGitTag =
|
||||
dirName === 'payload' ? `v${packageJson.version}` : `${dirName}/${packageJson.version}`
|
||||
const prevGitTagHash = await git.revparse(prevGitTag)
|
||||
|
||||
const newCommits = await git.log({
|
||||
from: prevGitTagHash,
|
||||
file: `packages/${dirName}`,
|
||||
})
|
||||
|
||||
return {
|
||||
commitMessage: newCommits.latest?.message ?? '',
|
||||
name: packageJson.name as string,
|
||||
newCommits: newCommits.total,
|
||||
shortName: dirName,
|
||||
packagePath: `packages/${dirName}`,
|
||||
prevGitTag,
|
||||
prevGitTagHash,
|
||||
publishedVersion,
|
||||
publishDate,
|
||||
packagePath: path.resolve(packagesDir, dirName),
|
||||
version: packageJson.version,
|
||||
}
|
||||
}),
|
||||
@@ -68,30 +30,3 @@ export const getPackageDetails = async (pkg?: string): Promise<PackageDetails[]>
|
||||
|
||||
return packageDetails.filter((p): p is Exclude<typeof p, null> => p !== null)
|
||||
}
|
||||
|
||||
export const showPackageDetails = (details: PackageDetails[]) => {
|
||||
console.log(chalkTemplate`
|
||||
|
||||
{bold Packages:}
|
||||
|
||||
${details
|
||||
.map((p) => {
|
||||
const name = p?.newCommits
|
||||
? chalk.bold.green(p?.shortName.padEnd(28))
|
||||
: chalk.dim(p?.shortName.padEnd(28))
|
||||
const publishData = `${p?.publishedVersion.padEnd(8)}${p?.publishDate.split('T')[0]}`
|
||||
const newCommits = p?.newCommits ? chalk.bold.green(`⇡${p?.newCommits} `) : ' '
|
||||
const commitMessage = p?.commitMessage
|
||||
? chalk.dim(
|
||||
p.commitMessage.length < 57
|
||||
? p.commitMessage
|
||||
: p.commitMessage.substring(0, 60).concat('...'),
|
||||
)
|
||||
: ''
|
||||
|
||||
return ` ${name}${newCommits}${publishData} ${commitMessage}`
|
||||
})
|
||||
.join('\n')}
|
||||
|
||||
`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user