UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

209 lines (168 loc) 15.7 kB
'use strict'; 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