mirror of
https://github.com/actions/create-release.git
synced 2025-06-15 05:17:44 +00:00
Refactor main.js for test coverage
This commit is contained in:
parent
fe2c2b435f
commit
8d93430edd
104
dist/index.js
vendored
104
dist/index.js
vendored
@ -378,55 +378,9 @@ module.exports._enoent = enoent;
|
|||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 31:
|
/***/ 31:
|
||||||
/***/ (function(module, __unusedexports, __webpack_require__) {
|
/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) {
|
||||||
|
|
||||||
const core = __webpack_require__(470);
|
const run = __webpack_require__(760);
|
||||||
const { GitHub, context } = __webpack_require__(469);
|
|
||||||
|
|
||||||
async function run() {
|
|
||||||
try {
|
|
||||||
// Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage
|
|
||||||
const github = new GitHub(process.env.GITHUB_TOKEN);
|
|
||||||
|
|
||||||
// Get owner and repo from context of payload that triggered the action
|
|
||||||
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 });
|
|
||||||
|
|
||||||
// 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 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
|
|
||||||
// Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release
|
|
||||||
const createReleaseResponse = await github.repos.createRelease({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
tag_name: tag,
|
|
||||||
name: releaseName,
|
|
||||||
draft,
|
|
||||||
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 }
|
|
||||||
} = 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);
|
|
||||||
} catch (error) {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = run;
|
|
||||||
|
|
||||||
if (require.main === require.cache[eval('__filename')]) {
|
if (require.main === require.cache[eval('__filename')]) {
|
||||||
run();
|
run();
|
||||||
@ -7885,6 +7839,60 @@ const request = withDefaults(endpoint.endpoint, {
|
|||||||
exports.request = request;
|
exports.request = request;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 760:
|
||||||
|
/***/ (function(module, __unusedexports, __webpack_require__) {
|
||||||
|
|
||||||
|
const core = __webpack_require__(470);
|
||||||
|
const { GitHub, context } = __webpack_require__(469);
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
try {
|
||||||
|
// Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage
|
||||||
|
const github = new GitHub(process.env.GITHUB_TOKEN);
|
||||||
|
|
||||||
|
// Get owner and repo from context of payload that triggered the action
|
||||||
|
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 });
|
||||||
|
|
||||||
|
// 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 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
|
||||||
|
// Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release
|
||||||
|
const createReleaseResponse = await github.repos.createRelease({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
tag_name: tag,
|
||||||
|
name: releaseName,
|
||||||
|
draft,
|
||||||
|
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 }
|
||||||
|
} = 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);
|
||||||
|
} catch (error) {
|
||||||
|
core.setFailed(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = run;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 761:
|
/***/ 761:
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "create-release",
|
"name": "create-release",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Generate a release",
|
"description": "Create a release",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint 'src/**.js' 'tests/**.js' --fix",
|
"lint": "eslint 'src/**.js' 'tests/**.js' --fix",
|
||||||
"test": "eslint 'src/**.js' 'tests/**.js' --fix && jest",
|
"test": "eslint 'src/**.js' 'tests/**.js' && jest --coverage",
|
||||||
"build": "ncc build src/main.js",
|
"build": "ncc build src/main.js",
|
||||||
"precommit": "npm run build && git add dist/"
|
"precommit": "npm run build && git add dist/"
|
||||||
},
|
},
|
||||||
@ -40,7 +40,7 @@
|
|||||||
"jest": {
|
"jest": {
|
||||||
"testEnvironment": "node",
|
"testEnvironment": "node",
|
||||||
"collectCoverageFrom": [
|
"collectCoverageFrom": [
|
||||||
"src/main.js"
|
"src/create-release.js"
|
||||||
],
|
],
|
||||||
"coverageThreshold": {
|
"coverageThreshold": {
|
||||||
"global": {
|
"global": {
|
||||||
|
47
src/create-release.js
Normal file
47
src/create-release.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
const core = require('@actions/core');
|
||||||
|
const { GitHub, context } = require('@actions/github');
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
try {
|
||||||
|
// Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage
|
||||||
|
const github = new GitHub(process.env.GITHUB_TOKEN);
|
||||||
|
|
||||||
|
// Get owner and repo from context of payload that triggered the action
|
||||||
|
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 });
|
||||||
|
|
||||||
|
// 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 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
|
||||||
|
// Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release
|
||||||
|
const createReleaseResponse = await github.repos.createRelease({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
tag_name: tag,
|
||||||
|
name: releaseName,
|
||||||
|
draft,
|
||||||
|
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 }
|
||||||
|
} = 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);
|
||||||
|
} catch (error) {
|
||||||
|
core.setFailed(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = run;
|
48
src/main.js
48
src/main.js
@ -1,50 +1,4 @@
|
|||||||
const core = require('@actions/core');
|
const run = require('./create-release');
|
||||||
const { GitHub, context } = require('@actions/github');
|
|
||||||
|
|
||||||
async function run() {
|
|
||||||
try {
|
|
||||||
// Get authenticated GitHub client (Ocktokit): https://github.com/actions/toolkit/tree/master/packages/github#usage
|
|
||||||
const github = new GitHub(process.env.GITHUB_TOKEN);
|
|
||||||
|
|
||||||
// Get owner and repo from context of payload that triggered the action
|
|
||||||
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 });
|
|
||||||
|
|
||||||
// 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 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
|
|
||||||
// Octokit Documentation: https://octokit.github.io/rest.js/#octokit-routes-repos-create-release
|
|
||||||
const createReleaseResponse = await github.repos.createRelease({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
tag_name: tag,
|
|
||||||
name: releaseName,
|
|
||||||
draft,
|
|
||||||
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 }
|
|
||||||
} = 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);
|
|
||||||
} catch (error) {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = run;
|
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
run();
|
run();
|
||||||
|
@ -3,7 +3,7 @@ jest.mock('@actions/github');
|
|||||||
|
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
const { GitHub, context } = require('@actions/github');
|
const { GitHub, context } = require('@actions/github');
|
||||||
const run = require('../src/main.js');
|
const run = require('../src/create-release.js');
|
||||||
|
|
||||||
/* eslint-disable no-undef */
|
/* eslint-disable no-undef */
|
||||||
describe('Create Release', () => {
|
describe('Create Release', () => {
|
Loading…
x
Reference in New Issue
Block a user