From 131b819361b31e0d001f3d08c10208691181c6b0 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Fri, 10 Apr 2020 14:48:36 +0200 Subject: [PATCH] Prettier 2.0.4 --- .github/workflows/ci.yml | 4 +- .github/workflows/versioning.yml | 2 +- action.yml | 30 +++--- dist/index.js | 29 +++--- package-lock.json | 6 +- package.json | 4 +- src/create-release.js | 29 +++--- src/main.js | 2 +- tests/create-release.test.js | 162 ++++++++++++++++--------------- 9 files changed, 140 insertions(+), 128 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 170330a3..c64b2a22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,8 +3,8 @@ name: "Tests" on: pull_request: push: - branches: # array of glob patterns matching against refs/heads. Optional; defaults to all - - master # triggers on pushes that contain changes in master + branches: # array of glob patterns matching against refs/heads. Optional; defaults to all + - master # triggers on pushes that contain changes in master jobs: test: diff --git a/.github/workflows/versioning.yml b/.github/workflows/versioning.yml index f314443d..0631a674 100644 --- a/.github/workflows/versioning.yml +++ b/.github/workflows/versioning.yml @@ -12,4 +12,4 @@ jobs: with: publish_latest: true env: - GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}' + GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}" diff --git a/action.yml b/action.yml index d6ffabbd..0760b4d0 100644 --- a/action.yml +++ b/action.yml @@ -1,34 +1,34 @@ -name: 'Create a Release' -description: 'Create a release for a tag in your repository' -author: 'GitHub' +name: "Create a Release" +description: "Create a release for a tag in your repository" +author: "GitHub" inputs: tag_name: - description: 'The name of the tag. This should come from the webhook payload, `github.GITHUB_REF` when a user pushes a new tag' + description: "The name of the tag. This should come from the webhook payload, `github.GITHUB_REF` when a user pushes a new tag" required: true release_name: - description: 'The name of the release. For example, `Release v1.0.1`' + description: "The name of the release. For example, `Release v1.0.1`" required: true body: - description: 'Text describing the contents of the tag.' + description: "Text describing the contents of the tag." required: false draft: - description: '`true` to create a draft (unpublished) release, `false` to create a published one. Default: `false`' + description: "`true` to create a draft (unpublished) release, `false` to create a published one. Default: `false`" required: false default: false prerelease: - description: '`true` to identify the release as a prerelease. `false` to identify the release as a full release. Default: `false`' + description: "`true` to identify the release as a prerelease. `false` to identify the release as a full release. Default: `false`" required: false default: false outputs: id: - description: 'The ID of the created Release' + description: "The ID of the created Release" html_url: - description: 'The URL users can navigate to in order to view the release' + description: "The URL users can navigate to in order to view the release" upload_url: - description: 'The URL for uploading assets to the release' + description: "The URL for uploading assets to the release" runs: - using: 'node12' - main: 'dist/index.js' + using: "node12" + main: "dist/index.js" branding: - icon: 'tag' - color: 'gray-dark' + icon: "tag" + color: "gray-dark" diff --git a/dist/index.js b/dist/index.js index 202df9f6..c2cb1c74 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 = {"_args":[["@octokit/rest@16.28.8","/Users/singingwolfboy/clones/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/singingwolfboy/clones/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"}; /***/ }), @@ -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 = {"_args":[["@octokit/graphql@2.1.3","/Users/singingwolfboy/clones/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/singingwolfboy/clones/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"}; /***/ }), @@ -7856,14 +7856,17 @@ async function run() { const { owner, repo } = context.repo; // Get the inputs from the workflow file: https://github.com/actions/toolkit/tree/master/packages/core#inputsoutputs - const tagName = core.getInput('tag_name', { required: true }); + const tagName = core.getInput("tag_name", { required: true }); // This removes the 'refs/tags' portion of the string, i.e. from 'refs/tags/v1.10.15' to 'v1.10.15' - 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 draft = core.getInput('draft', { required: false }) === 'true'; - const prerelease = core.getInput('prerelease', { required: false }) === 'true'; + 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 draft = core.getInput("draft", { required: false }) === "true"; + const prerelease = + core.getInput("prerelease", { required: false }) === "true"; // Create a release // API Documentation: https://developer.github.com/v3/repos/releases/#create-a-release @@ -7875,18 +7878,18 @@ async function run() { name: releaseName, body, draft, - prerelease + prerelease, }); // Get the ID, html_url, and upload URL for the created Release from the response const { - data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl } + data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl }, } = createReleaseResponse; // Set the output variables for use by other actions: https://github.com/actions/toolkit/tree/master/packages/core#inputsoutputs - core.setOutput('id', releaseId); - core.setOutput('html_url', htmlUrl); - core.setOutput('upload_url', uploadUrl); + core.setOutput("id", releaseId); + core.setOutput("html_url", htmlUrl); + core.setOutput("upload_url", uploadUrl); } catch (error) { core.setFailed(error.message); } diff --git a/package-lock.json b/package-lock.json index 17156a0e..4566cef8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5011,9 +5011,9 @@ "dev": true }, "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz", + "integrity": "sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==", "dev": true }, "pretty-format": { diff --git a/package.json b/package.json index c013ca81..89c4a8ef 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,8 @@ "main": "dist/index.js", "scripts": { "lint": "eslint 'src/**.js' 'tests/**.js' --fix", + "format": "prettier --write **/*.{js,json,yml}", + "format-check": "prettier --check **/*.{js,json,yml}", "test": "eslint 'src/**.js' 'tests/**.js' && jest --coverage", "build": "ncc build src/main.js", "precommit": "npm run build && git add dist/" @@ -34,7 +36,7 @@ "eslint-plugin-prettier": "^2.7.0", "eslint-plugin-react": "^7.12.4", "jest": "^24.8.0", - "prettier": "^1.16.4", + "prettier": "2.0.4", "husky": "^3.0.5" }, "jest": { diff --git a/src/create-release.js b/src/create-release.js index fe8b6bb7..3a4b0538 100644 --- a/src/create-release.js +++ b/src/create-release.js @@ -1,5 +1,5 @@ -const core = require('@actions/core'); -const { GitHub, context } = require('@actions/github'); +const core = require("@actions/core"); +const { GitHub, context } = require("@actions/github"); async function run() { try { @@ -10,14 +10,17 @@ async function run() { const { owner, repo } = context.repo; // Get the inputs from the workflow file: https://github.com/actions/toolkit/tree/master/packages/core#inputsoutputs - const tagName = core.getInput('tag_name', { required: true }); + const tagName = core.getInput("tag_name", { required: true }); // This removes the 'refs/tags' portion of the string, i.e. from 'refs/tags/v1.10.15' to 'v1.10.15' - 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 draft = core.getInput('draft', { required: false }) === 'true'; - const prerelease = core.getInput('prerelease', { required: false }) === 'true'; + 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 draft = core.getInput("draft", { required: false }) === "true"; + const prerelease = + core.getInput("prerelease", { required: false }) === "true"; // Create a release // API Documentation: https://developer.github.com/v3/repos/releases/#create-a-release @@ -29,18 +32,18 @@ async function run() { name: releaseName, body, draft, - prerelease + prerelease, }); // Get the ID, html_url, and upload URL for the created Release from the response const { - data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl } + data: { id: releaseId, html_url: htmlUrl, upload_url: uploadUrl }, } = createReleaseResponse; // Set the output variables for use by other actions: https://github.com/actions/toolkit/tree/master/packages/core#inputsoutputs - core.setOutput('id', releaseId); - core.setOutput('html_url', htmlUrl); - core.setOutput('upload_url', uploadUrl); + core.setOutput("id", releaseId); + core.setOutput("html_url", htmlUrl); + core.setOutput("upload_url", uploadUrl); } catch (error) { core.setFailed(error.message); } diff --git a/src/main.js b/src/main.js index 621172cb..49efd966 100644 --- a/src/main.js +++ b/src/main.js @@ -1,4 +1,4 @@ -const run = require('./create-release'); +const run = require("./create-release"); if (require.main === module) { run(); diff --git a/tests/create-release.test.js b/tests/create-release.test.js index dd8a9e68..5c5571ef 100644 --- a/tests/create-release.test.js +++ b/tests/create-release.test.js @@ -1,155 +1,159 @@ -jest.mock('@actions/core'); -jest.mock('@actions/github'); +jest.mock("@actions/core"); +jest.mock("@actions/github"); -const core = require('@actions/core'); -const { GitHub, context } = require('@actions/github'); -const run = require('../src/create-release.js'); +const core = require("@actions/core"); +const { GitHub, context } = require("@actions/github"); +const run = require("../src/create-release.js"); /* eslint-disable no-undef */ -describe('Create Release', () => { +describe("Create Release", () => { let createRelease; beforeEach(() => { createRelease = jest.fn().mockReturnValueOnce({ data: { - id: 'releaseId', - html_url: 'htmlUrl', - upload_url: 'uploadUrl' - } + id: "releaseId", + html_url: "htmlUrl", + upload_url: "uploadUrl", + }, }); context.repo = { - owner: 'owner', - repo: 'repo' + owner: "owner", + repo: "repo", }; const github = { repos: { - createRelease - } + createRelease, + }, }; GitHub.mockImplementation(() => github); }); - test('Create release endpoint is called', async () => { + test("Create release endpoint is called", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('myBody') - .mockReturnValueOnce('false') - .mockReturnValueOnce('false'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("myBody") + .mockReturnValueOnce("false") + .mockReturnValueOnce("false"); await run(); expect(createRelease).toHaveBeenCalledWith({ - owner: 'owner', - repo: 'repo', - tag_name: 'v1.0.0', - name: 'myRelease', - body: 'myBody', + owner: "owner", + repo: "repo", + tag_name: "v1.0.0", + name: "myRelease", + body: "myBody", draft: false, - prerelease: false + prerelease: false, }); }); - test('Draft release is created', async () => { + test("Draft release is created", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('myBody') - .mockReturnValueOnce('true') - .mockReturnValueOnce('false'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("myBody") + .mockReturnValueOnce("true") + .mockReturnValueOnce("false"); await run(); expect(createRelease).toHaveBeenCalledWith({ - owner: 'owner', - repo: 'repo', - tag_name: 'v1.0.0', - name: 'myRelease', - body: 'myBody', + owner: "owner", + repo: "repo", + tag_name: "v1.0.0", + name: "myRelease", + body: "myBody", draft: true, - prerelease: false + prerelease: false, }); }); - test('Pre-release release is created', async () => { + test("Pre-release release is created", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('myBody') - .mockReturnValueOnce('false') - .mockReturnValueOnce('true'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("myBody") + .mockReturnValueOnce("false") + .mockReturnValueOnce("true"); await run(); expect(createRelease).toHaveBeenCalledWith({ - owner: 'owner', - repo: 'repo', - tag_name: 'v1.0.0', - name: 'myRelease', - body: 'myBody', + owner: "owner", + repo: "repo", + tag_name: "v1.0.0", + name: "myRelease", + body: "myBody", draft: false, - prerelease: true + prerelease: true, }); }); - test('Release with empty body is created', async () => { + test("Release with empty body is created", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('') // <-- The default value for body in action.yml - .mockReturnValueOnce('false') - .mockReturnValueOnce('false'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("") // <-- The default value for body in action.yml + .mockReturnValueOnce("false") + .mockReturnValueOnce("false"); await run(); expect(createRelease).toHaveBeenCalledWith({ - owner: 'owner', - repo: 'repo', - tag_name: 'v1.0.0', - name: 'myRelease', - body: '', + owner: "owner", + repo: "repo", + tag_name: "v1.0.0", + name: "myRelease", + body: "", draft: false, - prerelease: false + prerelease: false, }); }); - test('Outputs are set', async () => { + test("Outputs are set", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('myBody') - .mockReturnValueOnce('false') - .mockReturnValueOnce('false'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("myBody") + .mockReturnValueOnce("false") + .mockReturnValueOnce("false"); core.setOutput = jest.fn(); await run(); - expect(core.setOutput).toHaveBeenNthCalledWith(1, 'id', 'releaseId'); - expect(core.setOutput).toHaveBeenNthCalledWith(2, 'html_url', 'htmlUrl'); - expect(core.setOutput).toHaveBeenNthCalledWith(3, 'upload_url', 'uploadUrl'); + expect(core.setOutput).toHaveBeenNthCalledWith(1, "id", "releaseId"); + expect(core.setOutput).toHaveBeenNthCalledWith(2, "html_url", "htmlUrl"); + expect(core.setOutput).toHaveBeenNthCalledWith( + 3, + "upload_url", + "uploadUrl" + ); }); - test('Action fails elegantly', async () => { + test("Action fails elegantly", async () => { core.getInput = jest .fn() - .mockReturnValueOnce('refs/tags/v1.0.0') - .mockReturnValueOnce('myRelease') - .mockReturnValueOnce('myBody') - .mockReturnValueOnce('false') - .mockReturnValueOnce('false'); + .mockReturnValueOnce("refs/tags/v1.0.0") + .mockReturnValueOnce("myRelease") + .mockReturnValueOnce("myBody") + .mockReturnValueOnce("false") + .mockReturnValueOnce("false"); createRelease.mockRestore(); createRelease.mockImplementation(() => { - throw new Error('Error creating release'); + throw new Error("Error creating release"); }); core.setOutput = jest.fn(); @@ -159,7 +163,7 @@ describe('Create Release', () => { await run(); expect(createRelease).toHaveBeenCalled(); - expect(core.setFailed).toHaveBeenCalledWith('Error creating release'); + expect(core.setFailed).toHaveBeenCalledWith("Error creating release"); expect(core.setOutput).toHaveBeenCalledTimes(0); }); });