mirror of
https://github.com/ncipollo/release-action
synced 2026-09-14 20:13:22 +00:00
Standardize on separate call to generate release notes
This commit is contained in:
+79
-14
@@ -55,6 +55,7 @@ describe("Action", () => {
|
|||||||
applyReleaseDataMock.mockClear()
|
applyReleaseDataMock.mockClear()
|
||||||
applyAssetUrlsMock.mockClear()
|
applyAssetUrlsMock.mockClear()
|
||||||
createMock.mockClear()
|
createMock.mockClear()
|
||||||
|
genReleaseNotesMock.mockClear()
|
||||||
getMock.mockClear()
|
getMock.mockClear()
|
||||||
listMock.mockClear()
|
listMock.mockClear()
|
||||||
shouldSkipMock.mockClear()
|
shouldSkipMock.mockClear()
|
||||||
@@ -62,18 +63,81 @@ describe("Action", () => {
|
|||||||
uploadMock.mockClear()
|
uploadMock.mockClear()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("creates release with generated release notes when no body provided", async () => {
|
||||||
|
const action = createAction(false, false, false, true, false, "")
|
||||||
|
|
||||||
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
|
tag,
|
||||||
|
generatedReleaseBody,
|
||||||
|
commit,
|
||||||
|
discussionCategory,
|
||||||
|
createDraft,
|
||||||
|
makeLatest,
|
||||||
|
createName,
|
||||||
|
createPrerelease
|
||||||
|
)
|
||||||
|
expect(uploadMock).not.toHaveBeenCalled()
|
||||||
|
assertOutputApplied()
|
||||||
|
assertAssetUrlsApplied({})
|
||||||
|
})
|
||||||
|
|
||||||
|
it("creates release with generated release notes that override existing body", async () => {
|
||||||
|
const action = createAction(false, false, false, true, false, "existing body")
|
||||||
|
|
||||||
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
|
tag,
|
||||||
|
generatedReleaseBody,
|
||||||
|
commit,
|
||||||
|
discussionCategory,
|
||||||
|
createDraft,
|
||||||
|
makeLatest,
|
||||||
|
createName,
|
||||||
|
createPrerelease
|
||||||
|
)
|
||||||
|
expect(uploadMock).not.toHaveBeenCalled()
|
||||||
|
assertOutputApplied()
|
||||||
|
assertAssetUrlsApplied({})
|
||||||
|
})
|
||||||
|
|
||||||
|
it("creates release with static body when generateReleaseNotes is false", async () => {
|
||||||
|
const action = createAction(false, false, false, false, false, "static body")
|
||||||
|
|
||||||
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).not.toHaveBeenCalled()
|
||||||
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
|
tag,
|
||||||
|
"static body",
|
||||||
|
commit,
|
||||||
|
discussionCategory,
|
||||||
|
createDraft,
|
||||||
|
makeLatest,
|
||||||
|
createName,
|
||||||
|
createPrerelease
|
||||||
|
)
|
||||||
|
expect(uploadMock).not.toHaveBeenCalled()
|
||||||
|
assertOutputApplied()
|
||||||
|
assertAssetUrlsApplied({})
|
||||||
|
})
|
||||||
|
|
||||||
it("creates release but does not upload if no artifact", async () => {
|
it("creates release but does not upload if no artifact", async () => {
|
||||||
const action = createAction(false, false)
|
const action = createAction(false, false)
|
||||||
|
|
||||||
await action.perform()
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -90,13 +154,13 @@ describe("Action", () => {
|
|||||||
|
|
||||||
await action.perform()
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -119,13 +183,13 @@ describe("Action", () => {
|
|||||||
|
|
||||||
await action.perform()
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -143,13 +207,13 @@ describe("Action", () => {
|
|||||||
|
|
||||||
await action.perform()
|
await action.perform()
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -209,13 +273,13 @@ describe("Action", () => {
|
|||||||
expect(error).toEqual("error")
|
expect(error).toEqual("error")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -310,13 +374,13 @@ describe("Action", () => {
|
|||||||
expect(error).toEqual(expectedError)
|
expect(error).toEqual(expectedError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
expect(genReleaseNotesMock).toHaveBeenCalledWith(tag)
|
||||||
expect(createMock).toHaveBeenCalledWith(
|
expect(createMock).toHaveBeenCalledWith(
|
||||||
tag,
|
tag,
|
||||||
createBody,
|
generatedReleaseBody,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
createDraft,
|
createDraft,
|
||||||
generateReleaseNotes,
|
|
||||||
makeLatest,
|
makeLatest,
|
||||||
createName,
|
createName,
|
||||||
createPrerelease
|
createPrerelease
|
||||||
@@ -484,7 +548,8 @@ describe("Action", () => {
|
|||||||
hasArtifact: boolean,
|
hasArtifact: boolean,
|
||||||
removeArtifacts = false,
|
removeArtifacts = false,
|
||||||
generateReleaseNotes = true,
|
generateReleaseNotes = true,
|
||||||
omitBodyDuringUpdate = false
|
omitBodyDuringUpdate = false,
|
||||||
|
createdReleaseBody = createBody
|
||||||
): Action {
|
): Action {
|
||||||
let inputArtifact: Artifact[]
|
let inputArtifact: Artifact[]
|
||||||
|
|
||||||
@@ -551,7 +616,7 @@ describe("Action", () => {
|
|||||||
artifactErrorsFailBuild: true,
|
artifactErrorsFailBuild: true,
|
||||||
artifacts: inputArtifact,
|
artifacts: inputArtifact,
|
||||||
createdDraft: createDraft,
|
createdDraft: createDraft,
|
||||||
createdReleaseBody: createBody,
|
createdReleaseBody: createdReleaseBody,
|
||||||
createdReleaseName: createName,
|
createdReleaseName: createName,
|
||||||
commit,
|
commit,
|
||||||
discussionCategory,
|
discussionCategory,
|
||||||
|
|||||||
+8
-2
@@ -141,13 +141,19 @@ export class Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async createRelease(): Promise<CreateReleaseResponse> {
|
private async createRelease(): Promise<CreateReleaseResponse> {
|
||||||
|
let releaseBody = this.inputs.createdReleaseBody
|
||||||
|
|
||||||
|
if (this.inputs.generateReleaseNotes) {
|
||||||
|
const response = await this.releases.generateReleaseNotes(this.inputs.tag)
|
||||||
|
releaseBody = response.data.body
|
||||||
|
}
|
||||||
|
|
||||||
return await this.releases.create(
|
return await this.releases.create(
|
||||||
this.inputs.tag,
|
this.inputs.tag,
|
||||||
this.inputs.createdReleaseBody,
|
releaseBody,
|
||||||
this.inputs.commit,
|
this.inputs.commit,
|
||||||
this.inputs.discussionCategory,
|
this.inputs.discussionCategory,
|
||||||
this.inputs.createdDraft,
|
this.inputs.createdDraft,
|
||||||
this.inputs.generateReleaseNotes,
|
|
||||||
this.inputs.makeLatest,
|
this.inputs.makeLatest,
|
||||||
this.inputs.createdReleaseName,
|
this.inputs.createdReleaseName,
|
||||||
this.inputs.createdPrerelease
|
this.inputs.createdPrerelease
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ export interface Releases {
|
|||||||
commitHash?: string,
|
commitHash?: string,
|
||||||
discussionCategory?: string,
|
discussionCategory?: string,
|
||||||
draft?: boolean,
|
draft?: boolean,
|
||||||
generateReleaseNotes?: boolean,
|
|
||||||
makeLatest?: "legacy" | "true" | "false" | undefined,
|
makeLatest?: "legacy" | "true" | "false" | undefined,
|
||||||
name?: string,
|
name?: string,
|
||||||
prerelease?: boolean
|
prerelease?: boolean
|
||||||
@@ -80,7 +79,6 @@ export class GithubReleases implements Releases {
|
|||||||
commitHash?: string,
|
commitHash?: string,
|
||||||
discussionCategory?: string,
|
discussionCategory?: string,
|
||||||
draft?: boolean,
|
draft?: boolean,
|
||||||
generateReleaseNotes?: boolean,
|
|
||||||
makeLatest?: "legacy" | "true" | "false" | undefined,
|
makeLatest?: "legacy" | "true" | "false" | undefined,
|
||||||
name?: string,
|
name?: string,
|
||||||
prerelease?: boolean
|
prerelease?: boolean
|
||||||
@@ -91,7 +89,6 @@ export class GithubReleases implements Releases {
|
|||||||
name: name,
|
name: name,
|
||||||
discussion_category_name: discussionCategory,
|
discussion_category_name: discussionCategory,
|
||||||
draft: draft,
|
draft: draft,
|
||||||
generate_release_notes: generateReleaseNotes,
|
|
||||||
make_latest: makeLatest,
|
make_latest: makeLatest,
|
||||||
owner: this.inputs.owner,
|
owner: this.inputs.owner,
|
||||||
prerelease: prerelease,
|
prerelease: prerelease,
|
||||||
|
|||||||
Reference in New Issue
Block a user