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:
Elliot DeNolf
2024-02-29 16:01:51 -05:00
committed by GitHub
parent 7188cfe85a
commit 6ff42d1627
11 changed files with 316 additions and 239 deletions

View File

@@ -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')}
`)
}