electron-forge
Version:
A complete tool for building modern Electron applications
209 lines (168 loc) • 15.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _bluebird = require('bluebird');
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _oraHandler = require('../util/ora-handler');
var _oraHandler2 = _interopRequireDefault(_oraHandler);
var _github = require('../util/github');
var _github2 = _interopRequireDefault(_github);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee4(artifacts, packageJSON, forgeConfig, authToken, tag) {
var github, release, uploaded;
return _regenerator2.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
if (forgeConfig.github_repository && (0, _typeof3.default)(forgeConfig.github_repository) === 'object' && forgeConfig.github_repository.owner && forgeConfig.github_repository.name) {
_context4.next = 2;
break;
}
throw 'In order to publish to github you must set the "github_repository.owner" and "github_repository.name" properties in your forge config. See the docs for more info';
case 2:
github = new _github2.default(authToken, true);
release = void 0;
_context4.next = 6;
return (0, _oraHandler2.default)('Searching for target Release', (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return github.getGitHub().repos.getReleases({
owner: forgeConfig.github_repository.owner,
repo: forgeConfig.github_repository.name,
per_page: 100
});
case 3:
_context.t0 = function (testRelease) {
return testRelease.tag_name === (tag || 'v' + packageJSON.version);
};
release = _context.sent.data.find(_context.t0);
if (release) {
_context.next = 7;
break;
}
throw { code: 404 };
case 7:
_context.next = 18;
break;
case 9:
_context.prev = 9;
_context.t1 = _context['catch'](0);
if (!(_context.t1.code === 404)) {
_context.next = 17;
break;
}
_context.next = 14;
return github.getGitHub().repos.createRelease({
owner: forgeConfig.github_repository.owner,
repo: forgeConfig.github_repository.name,
tag_name: tag || 'v' + packageJSON.version,
name: tag || 'v' + packageJSON.version,
draft: forgeConfig.github_repository.draft !== false,
prerelease: forgeConfig.github_repository.prerelease === true
});
case 14:
release = _context.sent.data;
_context.next = 18;
break;
case 17:
throw _context.t1;
case 18:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[0, 9]]);
})));
case 6:
uploaded = 0;
_context4.next = 9;
return (0, _oraHandler2.default)('Uploading Artifacts ' + uploaded + '/' + artifacts.length, function () {
var _ref3 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee3(uploadSpinner) {
var updateSpinner;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
updateSpinner = function updateSpinner() {
uploadSpinner.text = 'Uploading Artifacts ' + uploaded + '/' + artifacts.length; // eslint-disable-line
};
_context3.next = 3;
return _promise2.default.all(artifacts.map(function (artifactPath) {
return new _promise2.default(function () {
var _ref4 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2(resolve) {
var done;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
done = function done() {
uploaded += 1;
updateSpinner();
resolve();
};
if (!release.assets.find(function (asset) {
return asset.name === _path2.default.basename(artifactPath);
})) {
_context2.next = 3;
break;
}
return _context2.abrupt('return', done());
case 3:
_context2.next = 5;
return github.getGitHub().repos.uploadAsset({
owner: forgeConfig.github_repository.owner,
repo: forgeConfig.github_repository.name,
id: release.id,
filePath: artifactPath,
name: _path2.default.basename(artifactPath)
});
case 5:
return _context2.abrupt('return', done());
case 6:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined);
}));
return function (_x7) {
return _ref4.apply(this, arguments);
};
}());
}));
case 3:
case 'end':
return _context3.stop();
}
}
}, _callee3, undefined);
}));
return function (_x6) {
return _ref3.apply(this, arguments);
};
}());
case 9:
case 'end':
return _context4.stop();
}
}
}, _callee4, undefined);
}));
return function (_x, _x2, _x3, _x4, _x5) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInB1Ymxpc2hlcnMvZ2l0aHViLmpzIl0sIm5hbWVzIjpbImFydGlmYWN0cyIsInBhY2thZ2VKU09OIiwiZm9yZ2VDb25maWciLCJhdXRoVG9rZW4iLCJ0YWciLCJnaXRodWJfcmVwb3NpdG9yeSIsIm93bmVyIiwibmFtZSIsImdpdGh1YiIsInJlbGVhc2UiLCJnZXRHaXRIdWIiLCJyZXBvcyIsImdldFJlbGVhc2VzIiwicmVwbyIsInBlcl9wYWdlIiwidGVzdFJlbGVhc2UiLCJ0YWdfbmFtZSIsInZlcnNpb24iLCJkYXRhIiwiZmluZCIsImNvZGUiLCJjcmVhdGVSZWxlYXNlIiwiZHJhZnQiLCJwcmVyZWxlYXNlIiwidXBsb2FkZWQiLCJsZW5ndGgiLCJ1cGxvYWRTcGlubmVyIiwidXBkYXRlU3Bpbm5lciIsInRleHQiLCJhbGwiLCJtYXAiLCJyZXNvbHZlIiwiZG9uZSIsImFzc2V0cyIsImFzc2V0IiwiYmFzZW5hbWUiLCJhcnRpZmFjdFBhdGgiLCJ1cGxvYWRBc3NldCIsImlkIiwiZmlsZVBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7O2lFQUVlLGtCQUFPQSxTQUFQLEVBQWtCQyxXQUFsQixFQUErQkMsV0FBL0IsRUFBNENDLFNBQTVDLEVBQXVEQyxHQUF2RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFDUEYsWUFBWUcsaUJBQVosSUFBaUMsc0JBQU9ILFlBQVlHLGlCQUFuQixNQUF5QyxRQUExRSxJQUNKSCxZQUFZRyxpQkFBWixDQUE4QkMsS0FEMUIsSUFDbUNKLFlBQVlHLGlCQUFaLENBQThCRSxJQUYxRDtBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFHTCxtS0FISzs7QUFBQTtBQU1QQyxrQkFOTyxHQU1FLHFCQUFXTCxTQUFYLEVBQXNCLElBQXRCLENBTkY7QUFRVE0sbUJBUlM7QUFBQTtBQUFBLG1CQVNQLDBCQUFTLDhCQUFULHNEQUF5QztBQUFBO0FBQUE7QUFB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QUE7QUFBQTtBQUFBLDhCQUQ4QjtBQUFBLHlCQUFkLENBQVosQ0FMOEQ7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBaEU7O0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBdENPOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEciLCJmaWxlIjoicHVibGlzaGVycy9naXRodWIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IGFzeW5jT3JhIGZyb20gJy4uL3V0aWwvb3JhLWhhbmRsZXInO1xuaW1wb3J0IEdpdEh1YiBmcm9tICcuLi91dGlsL2dpdGh1Yic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIChhcnRpZmFjdHMsIHBhY2thZ2VKU09OLCBmb3JnZUNvbmZpZywgYXV0aFRva2VuLCB0YWcpID0+IHtcbiAgaWYgKCEoZm9yZ2VDb25maWcuZ2l0aHViX3JlcG9zaXRvcnkgJiYgdHlwZW9mIGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5ID09PSAnb2JqZWN0JyAmJlxuICAgIGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm93bmVyICYmIGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm5hbWUpKSB7XG4gICAgdGhyb3cgJ0luIG9yZGVyIHRvIHB1Ymxpc2ggdG8gZ2l0aHViIHlvdSBtdXN0IHNldCB0aGUgXCJnaXRodWJfcmVwb3NpdG9yeS5vd25lclwiIGFuZCBcImdpdGh1Yl9yZXBvc2l0b3J5Lm5hbWVcIiBwcm9wZXJ0aWVzIGluIHlvdXIgZm9yZ2UgY29uZmlnLiBTZWUgdGhlIGRvY3MgZm9yIG1vcmUgaW5mbyc7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuXG4gIGNvbnN0IGdpdGh1YiA9IG5ldyBHaXRIdWIoYXV0aFRva2VuLCB0cnVlKTtcblxuICBsZXQgcmVsZWFzZTtcbiAgYXdhaXQgYXN5bmNPcmEoJ1NlYXJjaGluZyBmb3IgdGFyZ2V0IFJlbGVhc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJlbGVhc2UgPSAoYXdhaXQgZ2l0aHViLmdldEdpdEh1YigpLnJlcG9zLmdldFJlbGVhc2VzKHtcbiAgICAgICAgb3duZXI6IGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm93bmVyLFxuICAgICAgICByZXBvOiBmb3JnZUNvbmZpZy5naXRodWJfcmVwb3NpdG9yeS5uYW1lLFxuICAgICAgICBwZXJfcGFnZTogMTAwLFxuICAgICAgfSkpLmRhdGEuZmluZCh0ZXN0UmVsZWFzZSA9PiB0ZXN0UmVsZWFzZS50YWdfbmFtZSA9PT0gKHRhZyB8fCBgdiR7cGFja2FnZUpTT04udmVyc2lvbn1gKSk7XG4gICAgICBpZiAoIXJlbGVhc2UpIHtcbiAgICAgICAgdGhyb3cgeyBjb2RlOiA0MDQgfTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gNDA0KSB7XG4gICAgICAgIC8vIFJlbGVhc2UgZG9lcyBub3QgZXhpc3QsIGxldCdzIG1ha2UgaXRcbiAgICAgICAgcmVsZWFzZSA9IChhd2FpdCBnaXRodWIuZ2V0R2l0SHViKCkucmVwb3MuY3JlYXRlUmVsZWFzZSh7XG4gICAgICAgICAgb3duZXI6IGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm93bmVyLFxuICAgICAgICAgIHJlcG86IGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm5hbWUsXG4gICAgICAgICAgdGFnX25hbWU6IHRhZyB8fCBgdiR7cGFja2FnZUpTT04udmVyc2lvbn1gLFxuICAgICAgICAgIG5hbWU6IHRhZyB8fCBgdiR7cGFja2FnZUpTT04udmVyc2lvbn1gLFxuICAgICAgICAgIGRyYWZ0OiBmb3JnZUNvbmZpZy5naXRodWJfcmVwb3NpdG9yeS5kcmFmdCAhPT0gZmFsc2UsXG4gICAgICAgICAgcHJlcmVsZWFzZTogZm9yZ2VDb25maWcuZ2l0aHViX3JlcG9zaXRvcnkucHJlcmVsZWFzZSA9PT0gdHJ1ZSxcbiAgICAgICAgfSkpLmRhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVbmtub3duIGVycm9yXG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGxldCB1cGxvYWRlZCA9IDA7XG4gIGF3YWl0IGFzeW5jT3JhKGBVcGxvYWRpbmcgQXJ0aWZhY3RzICR7dXBsb2FkZWR9LyR7YXJ0aWZhY3RzLmxlbmd0aH1gLCBhc3luYyAodXBsb2FkU3Bpbm5lcikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVNwaW5uZXIgPSAoKSA9PiB7XG4gICAgICB1cGxvYWRTcGlubmVyLnRleHQgPSBgVXBsb2FkaW5nIEFydGlmYWN0cyAke3VwbG9hZGVkfS8ke2FydGlmYWN0cy5sZW5ndGh9YDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIH07XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChhcnRpZmFjdHMubWFwKGFydGlmYWN0UGF0aCA9PlxuICAgICAgbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgZG9uZSA9ICgpID0+IHtcbiAgICAgICAgICB1cGxvYWRlZCArPSAxO1xuICAgICAgICAgIHVwZGF0ZVNwaW5uZXIoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChyZWxlYXNlLmFzc2V0cy5maW5kKGFzc2V0ID0+IGFzc2V0Lm5hbWUgPT09IHBhdGguYmFzZW5hbWUoYXJ0aWZhY3RQYXRoKSkpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGdpdGh1Yi5nZXRHaXRIdWIoKS5yZXBvcy51cGxvYWRBc3NldCh7XG4gICAgICAgICAgb3duZXI6IGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm93bmVyLFxuICAgICAgICAgIHJlcG86IGZvcmdlQ29uZmlnLmdpdGh1Yl9yZXBvc2l0b3J5Lm5hbWUsXG4gICAgICAgICAgaWQ6IHJlbGVhc2UuaWQsXG4gICAgICAgICAgZmlsZVBhdGg6IGFydGlmYWN0UGF0aCxcbiAgICAgICAgICBuYW1lOiBwYXRoLmJhc2VuYW1lKGFydGlmYWN0UGF0aCksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgfSlcbiAgICApKTtcbiAgfSk7XG59O1xuIl19