Skip to content

Commit ffcd2d4

Browse files
authored
Fixes #185 Add omitDraftDuringUpdate input (#190)
1 parent c309084 commit ffcd2d4

File tree

13 files changed

+203
-137
lines changed

13 files changed

+203
-137
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,6 @@ fabric.properties
9393
.idea/**/markdown-navigator/
9494

9595
# End of https://www.gitignore.io/api/webstorm
96+
97+
# Coverage
98+
coverage

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ This action will create a GitHub release and optionally upload an artifact to it
1818
| name | An optional name for the release. If this is omitted the tag will be used. | false | "" |
1919
| omitBody | Indicates if the release body should be omitted. | false | false |
2020
| omitBodyDuringUpdate | Indicates if the release body should be omitted during updates. The body will still be applied for newly created releases. This will preserve the existing body during updates. | false | false |
21+
| omitDraftDuringUpdate | Indicates if the draft flag should be omitted during updates. The draft flag will still be applied for newly created releases. This will preserve the existing draft state during updates. | false | false |
2122
| omitName | Indicates if the release name should be omitted. | false | false |
2223
| omitNameDuringUpdate | Indicates if the release name should be omitted during updates. The name will still be applied for newly created releases. This will preserve the existing name during updates. | false | false |
2324
| omitPrereleaseDuringUpdate | Indicates if the prerelease flag should be omitted during updates. The prerelease flag will still be applied for newly created releases. This will preserve the existing prerelease state during updates. | false | false |

__tests__/Action.test.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@ const artifacts = [
2222
]
2323

2424
const createBody = 'createBody'
25+
const createDraft = true
2526
const createName = 'createName'
2627
const commit = 'commit'
2728
const discussionCategory = 'discussionCategory'
28-
const draft = true
2929
const generateReleaseNotes = true
3030
const id = 100
3131
const createPrerelease = true
32-
const updatePrerelease = false
3332
const releaseId = 101
3433
const replacesArtifacts = true
3534
const tag = 'tag'
3635
const token = 'token'
3736
const updateBody = 'updateBody'
37+
const updateDraft = false
3838
const updateName = 'updateName'
39+
const updatePrerelease = false
3940
const url = 'http://api.example.com'
4041

4142
describe("Action", () => {
@@ -56,7 +57,7 @@ describe("Action", () => {
5657
createBody,
5758
commit,
5859
discussionCategory,
59-
draft,
60+
createDraft,
6061
generateReleaseNotes,
6162
createName,
6263
createPrerelease)
@@ -76,7 +77,7 @@ describe("Action", () => {
7677
createBody,
7778
commit,
7879
discussionCategory,
79-
draft,
80+
createDraft,
8081
generateReleaseNotes,
8182
createName,
8283
createPrerelease)
@@ -101,7 +102,7 @@ describe("Action", () => {
101102
createBody,
102103
commit,
103104
discussionCategory,
104-
draft,
105+
createDraft,
105106
generateReleaseNotes,
106107
createName,
107108
createPrerelease
@@ -121,7 +122,7 @@ describe("Action", () => {
121122
createBody,
122123
commit,
123124
discussionCategory,
124-
draft,
125+
createDraft,
125126
generateReleaseNotes,
126127
createName,
127128
createPrerelease
@@ -164,7 +165,7 @@ describe("Action", () => {
164165
createBody,
165166
commit,
166167
discussionCategory,
167-
draft,
168+
createDraft,
168169
generateReleaseNotes,
169170
createName,
170171
createPrerelease
@@ -215,7 +216,7 @@ describe("Action", () => {
215216
updateBody,
216217
commit,
217218
discussionCategory,
218-
draft,
219+
updateDraft,
219220
updateName,
220221
updatePrerelease
221222
)
@@ -239,7 +240,7 @@ describe("Action", () => {
239240
createBody,
240241
commit,
241242
discussionCategory,
242-
draft,
243+
createDraft,
243244
generateReleaseNotes,
244245
createName,
245246
createPrerelease
@@ -266,7 +267,7 @@ describe("Action", () => {
266267
updateBody,
267268
commit,
268269
discussionCategory,
269-
draft,
270+
updateDraft,
270271
updateName,
271272
updatePrerelease
272273
)
@@ -285,7 +286,7 @@ describe("Action", () => {
285286
updateBody,
286287
commit,
287288
discussionCategory,
288-
draft,
289+
updateDraft,
289290
updateName,
290291
updatePrerelease
291292
)
@@ -304,7 +305,7 @@ describe("Action", () => {
304305
updateBody,
305306
commit,
306307
discussionCategory,
307-
draft,
308+
updateDraft,
308309
updateName,
309310
updatePrerelease
310311
)
@@ -362,11 +363,11 @@ describe("Action", () => {
362363
allowUpdates: allowUpdates,
363364
artifactErrorsFailBuild: true,
364365
artifacts: inputArtifact,
366+
createdDraft: createDraft,
365367
createdReleaseBody: createBody,
366368
createdReleaseName: createName,
367369
commit: commit,
368370
discussionCategory: discussionCategory,
369-
draft: draft,
370371
generateReleaseNotes: true,
371372
owner: "owner",
372373
createdPrerelease: createPrerelease,
@@ -375,6 +376,7 @@ describe("Action", () => {
375376
repo: "repo",
376377
tag: tag,
377378
token: token,
379+
updatedDraft: updateDraft,
378380
updatedReleaseBody: updateBody,
379381
updatedReleaseName: updateName,
380382
updatedPrerelease: updatePrerelease

__tests__/Inputs.test.ts

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ describe('Inputs', () => {
108108

109109
it('returns input.artifacts with default contentType', () => {
110110
mockGetInput.mockReturnValueOnce('art1')
111-
.mockReturnValueOnce('raw')
111+
.mockReturnValueOnce('')
112112
.mockReturnValueOnce('false')
113113

114114
expect(inputs.artifacts).toEqual(artifacts)
@@ -128,6 +128,17 @@ describe('Inputs', () => {
128128
})
129129
})
130130

131+
describe('createdDraft', () => {
132+
it('returns false', () => {
133+
expect(inputs.createdDraft).toBe(false)
134+
})
135+
136+
it('returns true', () => {
137+
mockGetInput.mockReturnValue('true')
138+
expect(inputs.createdDraft).toBe(true)
139+
})
140+
})
141+
131142
describe('createdReleaseBody', () => {
132143
it('returns input body', () => {
133144
mockGetInput
@@ -174,7 +185,7 @@ describe('Inputs', () => {
174185
mockGetInput
175186
.mockReturnValueOnce('true')
176187
.mockReturnValueOnce('name')
177-
expect(inputs.createdReleaseBody).toBeUndefined()
188+
expect(inputs.createdReleaseName).toBeUndefined()
178189
})
179190

180191
it('returns tag', () => {
@@ -198,17 +209,6 @@ describe('Inputs', () => {
198209
})
199210
})
200211

201-
describe('draft', () => {
202-
it('returns false', () => {
203-
expect(inputs.draft).toBe(false)
204-
})
205-
206-
it('returns true', () => {
207-
mockGetInput.mockReturnValue('true')
208-
expect(inputs.draft).toBe(true)
209-
})
210-
})
211-
212212
describe('generateReleaseNotes', () => {
213213
it('returns returns true', function () {
214214
mockGetInput.mockReturnValue("true")
@@ -299,6 +299,33 @@ describe('Inputs', () => {
299299
})
300300
})
301301

302+
describe('updatedDraft', () => {
303+
it('returns false', () => {
304+
expect(inputs.updatedDraft).toBe(false)
305+
})
306+
307+
it('returns true', () => {
308+
mockGetInput
309+
.mockReturnValueOnce('false')
310+
.mockReturnValue('true')
311+
expect(inputs.updatedDraft).toBe(true)
312+
})
313+
314+
it('returns true when omitted is blank', () => {
315+
mockGetInput
316+
.mockReturnValueOnce('')
317+
.mockReturnValue('true')
318+
expect(inputs.updatedDraft).toBe(true)
319+
})
320+
321+
it('returns undefined when omitted for update', () => {
322+
mockGetInput
323+
.mockReturnValueOnce('true')
324+
.mockReturnValueOnce('true')
325+
expect(inputs.updatedDraft).toBeUndefined()
326+
})
327+
})
328+
302329
describe('updatedReleaseBody', () => {
303330
it('returns input body', () => {
304331
mockGetInput

__tests__/Integration.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ describe.skip('Integration Test', () => {
4141
allowUpdates: true,
4242
artifactErrorsFailBuild: false,
4343
artifacts: artifacts(),
44+
createdDraft: false,
4445
createdReleaseBody: "This release was generated by release-action's integration test",
4546
createdReleaseName: "Releases Action Integration Test",
4647
commit: undefined,
4748
discussionCategory: 'Release',
48-
draft: false,
4949
generateReleaseNotes: true,
5050
owner: "ncipollo",
5151
createdPrerelease: false,
@@ -54,6 +54,7 @@ describe.skip('Integration Test', () => {
5454
repo: "actions-playground",
5555
tag: "release-action-test",
5656
token: getToken(),
57+
updatedDraft: false,
5758
updatedReleaseBody: "This release was generated by release-action's integration test",
5859
updatedReleaseName: "Releases Action Integration Test",
5960
updatedPrerelease: false

action.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ inputs:
5959
description: 'Indicates if the release body should be omitted during updates. The body will still be applied for newly created releases. This will preserve the existing body during updates.'
6060
required: false
6161
default: 'false'
62+
omitDraftDuringUpdate:
63+
description: 'Indicates if the draft flag should be omitted during updates. The draft flag will still be applied for newly created releases. This will preserve the existing draft state during updates.'
64+
required: false
65+
default: 'false'
6266
omitName:
6367
description: 'Indicates if the release name should be omitted.'
6468
required: false

0 commit comments

Comments
 (0)