From bfe866faf6125eda37e44ed08d4d45adc56529ec Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Mon, 3 Feb 2020 22:37:38 -0600 Subject: [PATCH 1/6] try body as file, use as string otherwise --- dist/index.js | 13 ++++++++++--- package.json | 4 ++-- src/create-release.js | 9 ++++++++- tests/create-release.test.js | 26 ++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/dist/index.js b/dist/index.js index 202df9f..2fece1b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1697,7 +1697,7 @@ module.exports = require("https"); /***/ 215: /***/ (function(module) { -module.exports = {"_args":[["@octokit/rest@16.28.8","/Users/csexton/src/create-release"]],"_from":"@octokit/rest@16.28.8","_id":"@octokit/rest@16.28.8","_inBundle":false,"_integrity":"sha512-FouTTcLdT++gwgKVnBN8CEVeFvY/OKzeaoH/L9LBvZhbjUotLthFWAdKa8WeOMt5x7Rs7uvBpu7IdcrtRD3wBA==","_location":"/@octokit/rest","_phantomChildren":{"os-name":"3.1.0"},"_requested":{"type":"version","registry":true,"raw":"@octokit/rest@16.28.8","name":"@octokit/rest","escapedName":"@octokit%2frest","scope":"@octokit","rawSpec":"16.28.8","saveSpec":null,"fetchSpec":"16.28.8"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.28.8.tgz","_spec":"16.28.8","_where":"/Users/csexton/src/create-release","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/rest.js/issues"},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"dependencies":{"@octokit/request":"^5.0.0","@octokit/request-error":"^1.0.2","atob-lite":"^2.0.0","before-after-hook":"^2.0.0","btoa-lite":"^1.0.0","deprecation":"^2.0.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","lodash.uniq":"^4.5.0","octokit-pagination-methods":"^1.1.0","once":"^1.4.0","universal-user-agent":"^3.0.0"},"description":"GitHub REST API client for Node.js","devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/fixtures-server":"^5.0.1","@octokit/routes":"20.9.2","@types/node":"^12.0.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.0.0","coveralls":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^2.1.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^3.0.0","nock":"^10.0.0","npm-run-all":"^4.1.2","nyc":"^14.0.0","prettier":"^1.14.2","proxy":"^0.2.4","semantic-release":"^15.0.0","sinon":"^7.2.4","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","standard":"^14.0.2","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"files":["index.js","index.d.ts","lib","plugins"],"homepage":"https://github.com/octokit/rest.js#readme","keywords":["octokit","github","rest","api-client"],"license":"MIT","name":"@octokit/rest","nyc":{"ignore":["test"]},"publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/rest.js.git"},"scripts":{"build":"npm-run-all build:*","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","build:ts":"node scripts/generate-types","coverage":"nyc report --reporter=html && open coverage/index.html","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","generate-routes":"node scripts/generate-routes","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","prebuild:browser":"mkdirp dist/","pretest":"standard","prevalidate:ts":"npm run -s build:ts","start-fixtures-server":"octokit-fixtures-server","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","test:memory":"mocha test/memory-test","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts"},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect","cy"],"ignore":["/docs"]},"types":"index.d.ts","version":"16.28.8"}; +module.exports = {"name":"@octokit/rest","version":"16.28.8","publishConfig":{"access":"public"},"description":"GitHub REST API client for Node.js","keywords":["octokit","github","rest","api-client"],"author":"Gregor Martynus (https://github.com/gr2m)","contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"repository":"https://github.com/octokit/rest.js","dependencies":{"@octokit/request":"^5.0.0","@octokit/request-error":"^1.0.2","atob-lite":"^2.0.0","before-after-hook":"^2.0.0","btoa-lite":"^1.0.0","deprecation":"^2.0.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","lodash.uniq":"^4.5.0","octokit-pagination-methods":"^1.1.0","once":"^1.4.0","universal-user-agent":"^3.0.0"},"devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/fixtures-server":"^5.0.1","@octokit/routes":"20.9.2","@types/node":"^12.0.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.0.0","coveralls":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^2.1.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^3.0.0","nock":"^10.0.0","npm-run-all":"^4.1.2","nyc":"^14.0.0","prettier":"^1.14.2","proxy":"^0.2.4","semantic-release":"^15.0.0","sinon":"^7.2.4","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","standard":"^14.0.2","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"types":"index.d.ts","scripts":{"coverage":"nyc report --reporter=html && open coverage/index.html","pretest":"standard","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","test:memory":"mocha test/memory-test","build":"npm-run-all build:*","build:ts":"node scripts/generate-types","prebuild:browser":"mkdirp dist/","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","generate-routes":"node scripts/generate-routes","prevalidate:ts":"npm run -s build:ts","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","start-fixtures-server":"octokit-fixtures-server"},"license":"MIT","files":["index.js","index.d.ts","lib","plugins"],"nyc":{"ignore":["test"]},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect","cy"],"ignore":["/docs"]},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.28.8.tgz","_integrity":"sha512-FouTTcLdT++gwgKVnBN8CEVeFvY/OKzeaoH/L9LBvZhbjUotLthFWAdKa8WeOMt5x7Rs7uvBpu7IdcrtRD3wBA==","_from":"@octokit/rest@16.28.8"}; /***/ }), @@ -3796,7 +3796,7 @@ function octokitRestNormalizeGitReferenceResponses (octokit) { /***/ 314: /***/ (function(module) { -module.exports = {"_args":[["@octokit/graphql@2.1.3","/Users/csexton/src/create-release"]],"_from":"@octokit/graphql@2.1.3","_id":"@octokit/graphql@2.1.3","_inBundle":false,"_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_location":"/@octokit/graphql","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"@octokit/graphql@2.1.3","name":"@octokit/graphql","escapedName":"@octokit%2fgraphql","scope":"@octokit","rawSpec":"2.1.3","saveSpec":null,"fetchSpec":"2.1.3"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_spec":"2.1.3","_where":"/Users/csexton/src/create-release","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"description":"GitHub GraphQL API client for browsers and Node","devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"files":["lib"],"homepage":"https://github.com/octokit/graphql.js#readme","keywords":["octokit","github","api","graphql"],"license":"MIT","main":"index.js","name":"@octokit/graphql","publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/graphql.js.git"},"scripts":{"build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","prebuild":"mkdirp dist/","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"version":"2.1.3"}; +module.exports = {"name":"@octokit/graphql","version":"2.1.3","publishConfig":{"access":"public"},"description":"GitHub GraphQL API client for browsers and Node","main":"index.js","scripts":{"prebuild":"mkdirp dist/","build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"repository":{"type":"git","url":"https://github.com/octokit/graphql.js.git"},"keywords":["octokit","github","api","graphql"],"author":"Gregor Martynus (https://github.com/gr2m)","license":"MIT","bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"homepage":"https://github.com/octokit/graphql.js#readme","dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"files":["lib"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_from":"@octokit/graphql@2.1.3"}; /***/ }), @@ -7846,6 +7846,7 @@ exports.request = request; const core = __webpack_require__(470); const { GitHub, context } = __webpack_require__(469); +const fs = __webpack_require__(747); async function run() { try { @@ -7862,6 +7863,12 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); + let bodyFile = null; + try { + bodyFile = fs.readFileSync(body); + } catch (e) { + // noop + } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; @@ -7873,7 +7880,7 @@ async function run() { repo, tag_name: tag, name: releaseName, - body, + body: bodyFile || body, draft, prerelease }); diff --git a/package.json b/package.json index c013ca8..0f92836 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "Create a release", "main": "dist/index.js", "scripts": { - "lint": "eslint 'src/**.js' 'tests/**.js' --fix", - "test": "eslint 'src/**.js' 'tests/**.js' && jest --coverage", + "lint": "eslint src/**.js tests/**.js --fix", + "test": "eslint src/**.js tests/**.js && jest --coverage", "build": "ncc build src/main.js", "precommit": "npm run build && git add dist/" }, diff --git a/src/create-release.js b/src/create-release.js index fe8b6bb..26c2088 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -1,5 +1,6 @@ const core = require('@actions/core'); const { GitHub, context } = require('@actions/github'); +const fs = require('fs'); async function run() { try { @@ -16,6 +17,12 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); + let bodyFile = null; + try { + bodyFile = fs.readFileSync(body); + } catch (e) { + // noop + } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; @@ -27,7 +34,7 @@ async function run() { repo, tag_name: tag, name: releaseName, - body, + body: bodyFile || body, draft, prerelease }); diff --git a/tests/create-release.test.js b/tests/create-release.test.js index dd8a9e6..a2b283c 100644 --- a/tests/create-release.test.js +++ b/tests/create-release.test.js @@ -1,8 +1,10 @@ jest.mock('@actions/core'); jest.mock('@actions/github'); +jest.mock('fs'); const core = require('@actions/core'); const { GitHub, context } = require('@actions/github'); +const fs = require('fs'); const run = require('../src/create-release.js'); /* eslint-disable no-undef */ @@ -120,6 +122,30 @@ describe('Create Release', () => { }); }); + test('Release body based on file', async () => { + core.getInput = jest + .fn() + .mockReturnValueOnce('refs/tags/v1.0.0') + .mockReturnValueOnce('myRelease') + .mockReturnValueOnce('notes.md') + .mockReturnValueOnce('false') + .mockReturnValueOnce('false'); + + fs.readFileSync = jest.fn().mockReturnValueOnce('# this is a release\nThe markdown is strong in this one.'); + + await run(); + + expect(createRelease).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repo', + tag_name: 'v1.0.0', + name: 'myRelease', + body: '# this is a release\nThe markdown is strong in this one.', + draft: false, + prerelease: false + }); + }); + test('Outputs are set', async () => { core.getInput = jest .fn() From cf2e5a0ea5ee0541b8186c1867f53dc3561d1d09 Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Mon, 3 Feb 2020 22:49:09 -0600 Subject: [PATCH 2/6] add encoding property --- dist/index.js | 2 +- src/create-release.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index 2fece1b..cfc3ab8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -7865,7 +7865,7 @@ async function run() { const body = core.getInput('body', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(body); + bodyFile = fs.readFileSync(body, { encoding: 'string' }); } catch (e) { // noop } diff --git a/src/create-release.js b/src/create-release.js index 26c2088..9eb976f 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -19,7 +19,7 @@ async function run() { const body = core.getInput('body', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(body); + bodyFile = fs.readFileSync(body, { encoding: 'string' }); } catch (e) { // noop } From 15708f2a34303c093ef535039269b7f86a6840dc Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Mon, 3 Feb 2020 23:04:42 -0600 Subject: [PATCH 3/6] add new input, error if file not found --- dist/index.js | 7 ++++--- src/create-release.js | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dist/index.js b/dist/index.js index cfc3ab8..cf12275 100644 --- a/dist/index.js +++ b/dist/index.js @@ -7863,11 +7863,12 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); + const bodyFromFile = core.getInput('bodyFromFile', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(body, { encoding: 'string' }); - } catch (e) { - // noop + bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'string' }); + } catch (error) { + core.setFailed(error.message); } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; diff --git a/src/create-release.js b/src/create-release.js index 9eb976f..1eecd91 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -17,11 +17,12 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); + const bodyFromFile = core.getInput('bodyFromFile', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(body, { encoding: 'string' }); - } catch (e) { - // noop + bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'string' }); + } catch (error) { + core.setFailed(error.message); } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; From 76860a04af7c38cc29ea3cba3002484ff00f90c6 Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Mon, 3 Feb 2020 23:14:20 -0600 Subject: [PATCH 4/6] fix encoding --- dist/index.js | 2 +- src/create-release.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index cf12275..5679def 100644 --- a/dist/index.js +++ b/dist/index.js @@ -7866,7 +7866,7 @@ async function run() { const bodyFromFile = core.getInput('bodyFromFile', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'string' }); + bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); } catch (error) { core.setFailed(error.message); } diff --git a/src/create-release.js b/src/create-release.js index 1eecd91..be1467e 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -20,7 +20,7 @@ async function run() { const bodyFromFile = core.getInput('bodyFromFile', { required: false }); let bodyFile = null; try { - bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'string' }); + bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); } catch (error) { core.setFailed(error.message); } From c06331b12c39048278dbee795507de112ad01a0d Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Wed, 5 Feb 2020 22:46:40 -0600 Subject: [PATCH 5/6] only error on actual attempt at using bodyFromFile and reorder a bit for tests --- dist/index.js | 19 +++++++++++-------- src/create-release.js | 19 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/dist/index.js b/dist/index.js index 5679def..b3a5f25 100644 --- a/dist/index.js +++ b/dist/index.js @@ -7863,16 +7863,19 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); - const bodyFromFile = core.getInput('bodyFromFile', { required: false }); - let bodyFile = null; - try { - bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); - } catch (error) { - core.setFailed(error.message); - } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; + const bodyFromFile = core.getInput('bodyFromFile', { required: false }); + let bodyFileContent = null; + if (bodyFromFile !== '' && !!bodyFromFile) { + try { + bodyFileContent = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); + } catch (error) { + core.setFailed(error.message); + } + } + // Create a release // API Documentation: https://developer.github.com/v3/repos/releases/#create-a-release // Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release @@ -7881,7 +7884,7 @@ async function run() { repo, tag_name: tag, name: releaseName, - body: bodyFile || body, + body: bodyFileContent || body, draft, prerelease }); diff --git a/src/create-release.js b/src/create-release.js index be1467e..dfc980b 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -17,16 +17,19 @@ async function run() { const tag = tagName.replace('refs/tags/', ''); const releaseName = core.getInput('release_name', { required: true }).replace('refs/tags/', ''); const body = core.getInput('body', { required: false }); - const bodyFromFile = core.getInput('bodyFromFile', { required: false }); - let bodyFile = null; - try { - bodyFile = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); - } catch (error) { - core.setFailed(error.message); - } const draft = core.getInput('draft', { required: false }) === 'true'; const prerelease = core.getInput('prerelease', { required: false }) === 'true'; + const bodyFromFile = core.getInput('bodyFromFile', { required: false }); + let bodyFileContent = null; + if (bodyFromFile !== '' && !!bodyFromFile) { + try { + bodyFileContent = fs.readFileSync(bodyFromFile, { encoding: 'utf8' }); + } catch (error) { + core.setFailed(error.message); + } + } + // Create a release // API Documentation: https://developer.github.com/v3/repos/releases/#create-a-release // Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release @@ -35,7 +38,7 @@ async function run() { repo, tag_name: tag, name: releaseName, - body: bodyFile || body, + body: bodyFileContent || body, draft, prerelease }); From 6d0973ee3995f7336a10654e3681f1bf0fa0bc9c Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Wed, 5 Feb 2020 22:47:13 -0600 Subject: [PATCH 6/6] reorder test mock inputs --- tests/create-release.test.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/create-release.test.js b/tests/create-release.test.js index a2b283c..330344f 100644 --- a/tests/create-release.test.js +++ b/tests/create-release.test.js @@ -127,9 +127,10 @@ describe('Create Release', () => { .fn() .mockReturnValueOnce('refs/tags/v1.0.0') .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('notes.md') + .mockReturnValueOnce('') // <-- The default value for body in action.yml .mockReturnValueOnce('false') - .mockReturnValueOnce('false'); + .mockReturnValueOnce('false') + .mockReturnValueOnce('notes.md'); fs.readFileSync = jest.fn().mockReturnValueOnce('# this is a release\nThe markdown is strong in this one.');