diff --git a/scripts/release/__tests__/process-release.test.ts b/scripts/release/__tests__/process-release.test.ts index 066d3a1e0f..4575074f58 100644 --- a/scripts/release/__tests__/process-release.test.ts +++ b/scripts/release/__tests__/process-release.test.ts @@ -1,5 +1,5 @@ import { getVersionChangesText } from '../create-release-issue'; -import { getVersionsToRelease, getLangsToUpdateRepo } from '../process-release'; +import { getVersionsToRelease } from '../process-release'; import TEXT from '../text'; describe('process release', () => { @@ -19,18 +19,6 @@ describe('process release', () => { expect(versions.php.releaseType).toEqual('patch'); }); - it('gets langs to update', () => { - expect( - getLangsToUpdateRepo(` -## Version Changes - -- [ ] javascript: v1.0.0 -> \`minor\` (e.g. v1.1.0) -- [x] php: v2.0.0 -> \`patch\` (e.g. v2.0.1) -- [ ] java: v3.0.0 -> \`patch\` (e.g. v3.0.1) -`) - ).toEqual(['javascript', 'java']); - }); - it('parses issue body correctly', () => { // This test is a glue between create-release-issue and process-release. const issueBody = [ diff --git a/scripts/release/process-release.ts b/scripts/release/process-release.ts index 3629963bd3..1de0f42d87 100755 --- a/scripts/release/process-release.ts +++ b/scripts/release/process-release.ts @@ -59,7 +59,6 @@ function getDateStamp(): string { export function getVersionsToRelease(issueBody: string): VersionsToRelease { const versionsToRelease: VersionsToRelease = {}; - const dateStamp = getDateStamp(); getMarkdownSection(issueBody, TEXT.versionChangeHeader) .split('\n') @@ -77,23 +76,12 @@ export function getVersionsToRelease(issueBody: string): VersionsToRelease { versionsToRelease[lang] = { current, releaseType: releaseType as ReleaseType, - dateStamp, }; }); return versionsToRelease; } -export function getLangsToUpdateRepo(issueBody: string): string[] { - return getMarkdownSection(issueBody, TEXT.versionChangeHeader) - .split('\n') - .map((line) => { - const result = line.match(/- \[ \] (.+): v(.+) -> `(.+)`/); - return result?.[1]; - }) - .filter(Boolean) as string[]; -} - async function updateOpenApiTools( versionsToRelease: VersionsToRelease ): Promise { @@ -126,15 +114,11 @@ async function updateChangelog({ issueBody, current, next, - dateStamp, - willReleaseLibrary, }: { lang: string; issueBody: string; current: string; next: string; - dateStamp: string; - willReleaseLibrary: boolean; }): Promise { const changelogPath = toAbsolutePath( `${getLanguageFolder(lang)}/CHANGELOG.md` @@ -142,9 +126,9 @@ async function updateChangelog({ const existingContent = (await exists(changelogPath)) ? (await fsp.readFile(changelogPath)).toString() : ''; - const changelogHeader = willReleaseLibrary - ? `## [v${next}](${getGitHubUrl(lang)}/compare/v${current}...v${next})` - : `## ${dateStamp}`; + const changelogHeader = `## [v${next}](${getGitHubUrl( + lang + )}/compare/v${current}...v${next})`; const newChangelog = getMarkdownSection( getMarkdownSection(issueBody, TEXT.changelogHeader), `### ${lang}` @@ -175,20 +159,13 @@ async function processRelease(): Promise { } const versionsToRelease = getVersionsToRelease(issueBody); - const langsToUpdateRepo = getLangsToUpdateRepo(issueBody); // e.g. ['javascript', 'php'] await updateOpenApiTools(versionsToRelease); - const langsToReleaseOrUpdate = [ - ...Object.keys(versionsToRelease), - ...langsToUpdateRepo, - ]; - - const willReleaseLibrary = (lang: string): boolean => - Boolean(versionsToRelease[lang]); + const langsToRelease = Object.keys(versionsToRelease); - for (const lang of langsToReleaseOrUpdate) { - const { current, releaseType, dateStamp } = versionsToRelease[lang]; + for (const lang of langsToRelease) { + const { current, releaseType } = versionsToRelease[lang]; /* About bumping versions of JS clients: @@ -215,14 +192,12 @@ async function processRelease(): Promise { issueBody, current, next: next!, - dateStamp, - willReleaseLibrary: willReleaseLibrary(lang), }); } // We push commits to each repository AFTER all the generations are done. // Otherwise, we will end up having broken release. - for (const lang of langsToReleaseOrUpdate) { + for (const lang of langsToRelease) { const { tempGitDir } = await cloneRepository({ lang, githubToken: process.env.GITHUB_TOKEN, @@ -235,33 +210,24 @@ async function processRelease(): Promise { await configureGitHubAuthor(tempGitDir); await run(`git add .`, { cwd: tempGitDir }); - const { current, dateStamp, releaseType } = versionsToRelease[lang]; + const { current, releaseType } = versionsToRelease[lang]; const next = semver.inc(current, releaseType); - if (willReleaseLibrary(lang)) { - await gitCommit({ - message: `chore: release ${next}`, - cwd: tempGitDir, - }); - if (process.env.VERSION_TAG_ON_RELEASE === 'true') { - await execa('git', ['tag', `v${next}`], { cwd: tempGitDir }); - await run(`git push --tags`, { cwd: tempGitDir }); - } - } else { - await gitCommit({ - message: `chore: update repo ${dateStamp}`, - cwd: tempGitDir, - }); - } - await run(`git push`, { cwd: tempGitDir }); + await gitCommit({ + message: `chore: release ${next}`, + cwd: tempGitDir, + }); + await execa('git', ['tag', `v${next}`], { cwd: tempGitDir }); + await run(`git push --follow-tags`, { cwd: tempGitDir }); } // Commit and push from the monorepo level. await configureGitHubAuthor(); await run(`git add .`); - await execa('git', ['commit', '-m', `chore: release ${getDateStamp()}`]); + const dateStamp = getDateStamp(); + await execa('git', ['commit', '-m', `chore: release ${dateStamp}`]); await gitCommit({ - message: `chore: release ${getDateStamp()}`, + message: `chore: release ${dateStamp}`, }); await run(`git push`); diff --git a/scripts/release/text.ts b/scripts/release/text.ts index a80854663f..8dff3a4951 100644 --- a/scripts/release/text.ts +++ b/scripts/release/text.ts @@ -8,8 +8,7 @@ export default { currentVersionNotFound: `current version not found`, descriptionVersionChanges: [ `**Checked** → Update version, update repository, and release the library.`, - `**Un-checked** → Update repository.`, - `**Line removed** → Do nothing.`, + `**Un-checked** → Do nothing`, ].join('\n'), indenpendentVersioning: `
diff --git a/scripts/release/types.ts b/scripts/release/types.ts index f05a7bd9da..c97e0eea4d 100644 --- a/scripts/release/types.ts +++ b/scripts/release/types.ts @@ -34,6 +34,5 @@ export type VersionsToRelease = { [lang: string]: { current: string; releaseType: ReleaseType; - dateStamp: string; }; };