Skip to content

Commit 0ae0a95

Browse files
committed
network@version for single variants
1 parent 35150c4 commit 0ae0a95

File tree

4 files changed

+24
-12
lines changed

4 files changed

+24
-12
lines changed

src/tasks/createGithubRelease/getNextGitTag.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,35 @@ type GitTagDetailsMap = {
1616
*
1717
* - If the package is a single-variant package, the tag will be in the format:
1818
* `v0.1.2`
19+
*
20+
* - If isMultiVariant is true, always use variant@v<version> format, even for a single variant
1921
*/
20-
export function getNextGitTag(releaseDetailsMap: GitTagDetailsMap): string {
22+
export function getNextGitTag(releaseDetailsMap: GitTagDetailsMap, isMultiVariant: boolean): string {
2123
const variantVersions = Object.entries(
2224
releaseDetailsMap
2325
).map(([, { variant, nextVersion }]) => ({ variant, nextVersion }));
2426

2527
if (variantVersions.length === 0)
2628
throw Error("Could not generate git tag. Missing variant or nextVersion");
2729

28-
// Not a multi-variant package
29-
if (variantVersions.length === 1) return `v${variantVersions[0].nextVersion}`;
30-
3130
// If any variant is null, throw an error
3231
if (variantVersions.some(({ variant }) => !variant))
3332
throw Error("Could not generate git tag. Missing variant");
3433

35-
// Multi-variant package
34+
// If isMultiVariant, always use variant@v<version> format, even for a single variant
35+
if (isMultiVariant) {
36+
return variantVersions
37+
.sort((a, b) => (a.variant || "").localeCompare(b.variant || ""))
38+
.map(({ variant, nextVersion }) => `${variant}@v${nextVersion}`)
39+
.join("_");
40+
}
41+
42+
// Not a multi-variant package
43+
if (variantVersions.length === 1) return `v${variantVersions[0].nextVersion}`;
44+
45+
// Multi-variant package (fallback, should not hit if isMultiVariant is set correctly)
3646
return variantVersions
37-
.sort((a, b) => (a.variant || "").localeCompare(b.variant || "")) // Sort alphabetically by variant
38-
.map(({ variant, nextVersion }) => `${variant}@${nextVersion}`) // Map to string
39-
.join("_"); // Join into a single string
47+
.sort((a, b) => (a.variant || "").localeCompare(b.variant || ""))
48+
.map(({ variant, nextVersion }) => `${variant}@${nextVersion}`)
49+
.join("_");
4050
}

src/tasks/createGithubRelease/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export function createGithubRelease({
2626

2727
return new Listr<ListrContextPublish>(
2828
[
29-
getHandleTagsTask({ github }),
29+
getHandleTagsTask({ github, isMultiVariant }),
3030
getCreateReleaseTask({
3131
github,
3232
composeFileName,

src/tasks/createGithubRelease/subtasks/getCreateReleaseTask.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function getCreateReleaseTask({
3232
task: async (ctx, task) => {
3333
const releaseDetailsMap = buildReleaseDetailsMap(ctx);
3434

35-
const tag = getNextGitTag(releaseDetailsMap);
35+
const tag = getNextGitTag(releaseDetailsMap, isMultiVariant);
3636

3737
task.output = "Deleting existing release...";
3838
await github.deleteReleaseAndAssets(tag);

src/tasks/createGithubRelease/subtasks/getHandleTagsTask.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ import { buildReleaseDetailsMap } from "../buildReleaseDetailsMap.js";
1414
* tagged and released on that tag
1515
*/
1616
export function getHandleTagsTask({
17-
github
17+
github,
18+
isMultiVariant
1819
}: {
1920
github: Github;
21+
isMultiVariant: boolean;
2022
}): ListrTask<ListrContextPublish> {
2123
const isCi = process.env.CI;
2224
const triggerTag = process.env.GITHUB_REF || process.env.TRAVIS_TAG;
@@ -29,7 +31,7 @@ export function getHandleTagsTask({
2931

3032
const releaseDetailsMap = buildReleaseDetailsMap(ctx);
3133

32-
const tag = getNextGitTag(releaseDetailsMap);
34+
const tag = getNextGitTag(releaseDetailsMap, isMultiVariant);
3335

3436
// If the release is triggered in CI,
3537
// the trigger tag must be removed ("release/patch")

0 commit comments

Comments
 (0)