mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 12:33:30 +01:00
ci: implement workflow to publish dev versions (#11120)
* ci: implement workflow to publish dev versions * ci: refactor into the other dev job * fix: use dev tag * chore: clarify * fix: always use actions from main * fix: conditionally * chore: don't ask for meaningless perm
This commit is contained in:
committed by
GitHub
parent
fcf7f27fd7
commit
0c2975e3fd
@@ -26,9 +26,9 @@ export interface ReleaseEntry {
|
||||
version: string;
|
||||
}
|
||||
|
||||
async function fetchDevVersion(pkg: string) {
|
||||
async function fetchDevVersion(pkg: string, tag: string) {
|
||||
try {
|
||||
const res = await fetch(`https://registry.npmjs.org/${pkg}/dev`);
|
||||
const res = await fetch(`https://registry.npmjs.org/${pkg}/${tag}`);
|
||||
if (!res.ok) return null;
|
||||
const packument = (await res.json()) as PackumentVersion;
|
||||
return packument.version;
|
||||
@@ -37,7 +37,7 @@ async function fetchDevVersion(pkg: string) {
|
||||
}
|
||||
}
|
||||
|
||||
async function getReleaseEntries(dev: boolean, dry: boolean) {
|
||||
async function getReleaseEntries(dry: boolean, devTag?: string) {
|
||||
const releaseEntries: ReleaseEntry[] = [];
|
||||
const packageList: pnpmTree[] =
|
||||
await $`pnpm list --recursive --only-projects --filter {packages/\*} --prod --json`.json();
|
||||
@@ -57,8 +57,8 @@ async function getReleaseEntries(dev: boolean, dry: boolean) {
|
||||
version: pkg.version,
|
||||
};
|
||||
|
||||
if (dev) {
|
||||
const devVersion = await fetchDevVersion(pkg.name);
|
||||
if (devTag) {
|
||||
const devVersion = await fetchDevVersion(pkg.name, devTag);
|
||||
if (devVersion?.endsWith(commitHash)) {
|
||||
// Write the currently released dev version so when pnpm publish runs on dependents they depend on the dev versions
|
||||
if (dry) {
|
||||
@@ -72,9 +72,9 @@ async function getReleaseEntries(dev: boolean, dry: boolean) {
|
||||
release.version = devVersion;
|
||||
} else if (dry) {
|
||||
info(`[DRY] Bumping ${pkg.name} via git-cliff.`);
|
||||
release.version = `${pkg.version}.DRY-dev.${timestamp}-${commitHash}`;
|
||||
release.version = `${pkg.version}.DRY-${devTag}.${timestamp}-${commitHash}`;
|
||||
} else {
|
||||
await $`pnpm --filter=${pkg.name} run release --preid "dev.${timestamp}-${commitHash}" --skip-changelog`;
|
||||
await $`pnpm --filter=${pkg.name} run release --preid "${devTag}.${timestamp}-${commitHash}" --skip-changelog`;
|
||||
// Read again instead of parsing the output to be sure we're matching when checking against npm
|
||||
const pkgJson = (await file(`${pkg.path}/package.json`).json()) as PackageJSON;
|
||||
release.version = pkgJson.version;
|
||||
@@ -129,8 +129,8 @@ async function getReleaseEntries(dev: boolean, dry: boolean) {
|
||||
return releaseEntries;
|
||||
}
|
||||
|
||||
export async function generateReleaseTree(dev: boolean, dry: boolean, packageName?: string, exclude?: string[]) {
|
||||
let releaseEntries = await getReleaseEntries(dev, dry);
|
||||
export async function generateReleaseTree(dry: boolean, devTag?: string, packageName?: string, exclude?: string[]) {
|
||||
let releaseEntries = await getReleaseEntries(dry, devTag);
|
||||
// Try to early return if the package doesn't have deps
|
||||
if (packageName && packageName !== 'all') {
|
||||
const releaseEntry = releaseEntries.find((entry) => entry.name === packageName);
|
||||
|
||||
Reference in New Issue
Block a user