Merged in chore/add-package-to-semver (pull request #3408)
add package-name to semver * add package-name to semver Approved-by: Linus Flood
This commit is contained in:
4
apps/partner-sas/env/client.ts
vendored
4
apps/partner-sas/env/client.ts
vendored
@@ -10,7 +10,9 @@ export const env = createEnv({
|
|||||||
NEXT_PUBLIC_RELEASE_TAG: z
|
NEXT_PUBLIC_RELEASE_TAG: z
|
||||||
.string()
|
.string()
|
||||||
.optional()
|
.optional()
|
||||||
.transform((s) => getSemver(s, process.env.BRANCH || "development")),
|
.transform((s) =>
|
||||||
|
getSemver("partner-sas", s, process.env.BRANCH || "development")
|
||||||
|
),
|
||||||
},
|
},
|
||||||
emptyStringAsUndefined: true,
|
emptyStringAsUndefined: true,
|
||||||
runtimeEnv: {
|
runtimeEnv: {
|
||||||
|
|||||||
4
apps/partner-sas/env/server.ts
vendored
4
apps/partner-sas/env/server.ts
vendored
@@ -41,7 +41,9 @@ export const env = createEnv({
|
|||||||
RELEASE_TAG: z
|
RELEASE_TAG: z
|
||||||
.string()
|
.string()
|
||||||
.optional()
|
.optional()
|
||||||
.transform((s) => getSemver(s, process.env.BRANCH || "development")),
|
.transform((s) =>
|
||||||
|
getSemver("partner-sas", s, process.env.BRANCH || "development")
|
||||||
|
),
|
||||||
},
|
},
|
||||||
emptyStringAsUndefined: true,
|
emptyStringAsUndefined: true,
|
||||||
runtimeEnv: {
|
runtimeEnv: {
|
||||||
|
|||||||
4
apps/scandic-web/env/client.ts
vendored
4
apps/scandic-web/env/client.ts
vendored
@@ -13,7 +13,9 @@ export const env = createEnv({
|
|||||||
NEXT_PUBLIC_RELEASE_TAG: z
|
NEXT_PUBLIC_RELEASE_TAG: z
|
||||||
.string()
|
.string()
|
||||||
.optional()
|
.optional()
|
||||||
.transform((s) => getSemver(s, process.env.BRANCH || "development")),
|
.transform((s) =>
|
||||||
|
getSemver("scandic-web", s, process.env.BRANCH || "development")
|
||||||
|
),
|
||||||
},
|
},
|
||||||
emptyStringAsUndefined: true,
|
emptyStringAsUndefined: true,
|
||||||
runtimeEnv: {
|
runtimeEnv: {
|
||||||
|
|||||||
4
apps/scandic-web/env/server.ts
vendored
4
apps/scandic-web/env/server.ts
vendored
@@ -110,7 +110,9 @@ export const env = createEnv({
|
|||||||
RELEASE_TAG: z
|
RELEASE_TAG: z
|
||||||
.string()
|
.string()
|
||||||
.optional()
|
.optional()
|
||||||
.transform((s) => getSemver(s, process.env.BRANCH || "development")),
|
.transform((s) =>
|
||||||
|
getSemver("scandic-web", s, process.env.BRANCH || "development")
|
||||||
|
),
|
||||||
},
|
},
|
||||||
emptyStringAsUndefined: true,
|
emptyStringAsUndefined: true,
|
||||||
runtimeEnv: {
|
runtimeEnv: {
|
||||||
|
|||||||
@@ -4,47 +4,55 @@ import { getSemver } from "./getSemver"
|
|||||||
|
|
||||||
describe("getSemver", () => {
|
describe("getSemver", () => {
|
||||||
it("should return undefined if version is undefined", () => {
|
it("should return undefined if version is undefined", () => {
|
||||||
expect(getSemver(undefined, "master")).toBeUndefined()
|
expect(getSemver("package", undefined, "master")).toBeUndefined()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should return undefined if version is not a string", () => {
|
it("should return undefined if version is not a string", () => {
|
||||||
// @ts-expect-error Testing invalid input
|
// @ts-expect-error Testing invalid input
|
||||||
expect(getSemver(123, "master")).toBeUndefined()
|
expect(getSemver("package", 123, "master")).toBeUndefined()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should strip 'v' prefix from version", () => {
|
it("should strip 'v' prefix from version", () => {
|
||||||
expect(getSemver("v1.0.0", "master")).toBe("1.0.0")
|
expect(getSemver("package", "v1.0.0", "master")).toBe("package@1.0.0")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should return undefined if version format is invalid", () => {
|
it("should return undefined if version format is invalid", () => {
|
||||||
expect(getSemver("invalid-version", "master")).toBeUndefined()
|
expect(getSemver("package", "invalid-version", "master")).toBeUndefined()
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should return the version as-is for named branches", () => {
|
it("should return the version as-is for named branches", () => {
|
||||||
expect(getSemver("1.0.0", "release")).toBe("1.0.0")
|
expect(getSemver("package", "1.0.0", "release")).toBe("package@1.0.0")
|
||||||
expect(getSemver("1.0.0", "master")).toBe("1.0.0")
|
expect(getSemver("package", "1.0.0", "master")).toBe("package@1.0.0")
|
||||||
expect(getSemver("1.0.0", "test")).toBe("1.0.0")
|
expect(getSemver("package", "1.0.0", "test")).toBe("package@1.0.0")
|
||||||
expect(getSemver("1.0.0", "stage")).toBe("1.0.0")
|
expect(getSemver("package", "1.0.0", "stage")).toBe("package@1.0.0")
|
||||||
expect(getSemver("1.0.0", "prod")).toBe("1.0.0")
|
expect(getSemver("package", "1.0.0", "prod")).toBe("package@1.0.0")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should append cleaned branch name for non-named branches", () => {
|
it("should append cleaned branch name for non-named branches", () => {
|
||||||
expect(getSemver("1.0.0", "feature/my-feature")).toBe(
|
expect(getSemver("package", "1.0.0", "feature/my-feature")).toBe(
|
||||||
"1.0.0-feature-my-feature"
|
"package@1.0.0-feature-my-feature"
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle special characters in non-named branches", () => {
|
it("should handle special characters in non-named branches", () => {
|
||||||
expect(getSemver("1.0.0", "fix/bug#123")).toBe("1.0.0-fix-bug-123")
|
expect(getSemver("package", "1.0.0", "fix/bug#123")).toBe(
|
||||||
|
"package@1.0.0-fix-bug-123"
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should lowercase and trim non-named branches", () => {
|
it("should lowercase and trim non-named branches", () => {
|
||||||
expect(getSemver("1.0.0", " MY-BRANCH ")).toBe("1.0.0-my-branch")
|
expect(getSemver("package", "1.0.0", " MY-BRANCH ")).toBe(
|
||||||
|
"package@1.0.0-my-branch"
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should truncate long branch names", () => {
|
it("should truncate long branch names", () => {
|
||||||
expect(
|
expect(
|
||||||
getSemver("1.0.0", "feature/very-long-branch-name-that-exceeds-limit")
|
getSemver(
|
||||||
).toBe("1.0.0-feature-very-long-br")
|
"package",
|
||||||
|
"1.0.0",
|
||||||
|
"feature/very-long-branch-name-that-exceeds-limit"
|
||||||
|
)
|
||||||
|
).toBe("package@1.0.0-feature-very-long-br")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const namedBranches = ["release", "master", "test", "stage", "prod"] as const
|
|||||||
type NamedBranch = (typeof namedBranches)[number] | (string & {})
|
type NamedBranch = (typeof namedBranches)[number] | (string & {})
|
||||||
|
|
||||||
export function getSemver(
|
export function getSemver(
|
||||||
|
packageName: string,
|
||||||
version: string | undefined,
|
version: string | undefined,
|
||||||
branch: NamedBranch
|
branch: NamedBranch
|
||||||
): string | undefined {
|
): string | undefined {
|
||||||
@@ -25,8 +26,8 @@ export function getSemver(
|
|||||||
.replace(/[^a-zA-Z0-9]/g, "-")
|
.replace(/[^a-zA-Z0-9]/g, "-")
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
|
|
||||||
return `${version}-${cleanedBranch}`
|
return `${packageName}@${version}-${cleanedBranch}`
|
||||||
}
|
}
|
||||||
|
|
||||||
return version
|
return `${packageName}@${version}`
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user