UNPKG

ember-material-icons

Version:

Google Material icons for your ember-cli app

237 lines (184 loc) 6.33 kB
'use strict'; require('babel-polyfill'); var Promise = require('bluebird'); var promisify = Promise.promisify; var request = require('request-promise'); var Travis = require('travis-ci'); module.exports = function travisDeployOnce() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, token = _ref.token; var _ref2, pro, travis, buildId, buildApi, _ref3, jobs, currentJobId, attempt, successes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, jobId, jobApi, _ref4, job; return regeneratorRuntime.async(function travisDeployOnce$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: token = token || process.env.GH_TOKEN; if (token) { _context.next = 3; break; } throw new Error('GitHub token missing'); case 3: if (!(!process.env.TRAVIS === 'true')) { _context.next = 5; break; } throw new Error('Not running on Travis'); case 5: if (process.env.TRAVIS_JOB_NUMBER.endsWith('.1')) { _context.next = 7; break; } return _context.abrupt('return', null); case 7: if (!(process.env.TRAVIS_TEST_RESULT === '1')) { _context.next = 9; break; } return _context.abrupt('return', false); case 9: if (!(process.env.TRAVIS_TEST_RESULT !== '0')) { _context.next = 11; break; } throw new Error('Not running in Travis after_success hook'); case 11: _context.next = 13; return regeneratorRuntime.awrap(request({ json: true, url: 'https://api.github.com/repos/' + process.env.TRAVIS_REPO_SLUG, headers: { Authorization: 'token ' + token, 'user-agent': 'travis-deploy-once' } })); case 13: _ref2 = _context.sent; pro = _ref2.private; travis = new Travis({ pro: pro, version: '2.0.0', headers: { 'user-agent': 'Travis' } }); _context.next = 18; return regeneratorRuntime.awrap(promisify(travis.authenticate, { context: travis })({ github_token: token })); case 18: buildId = parseInt(process.env.TRAVIS_BUILD_ID, 10); buildApi = travis.builds(buildId); _context.next = 22; return regeneratorRuntime.awrap(promisify(buildApi.get, { context: buildApi })()); case 22: _ref3 = _context.sent; jobs = _ref3.build.job_ids; currentJobId = parseInt(process.env.TRAVIS_JOB_ID, 10); attempt = 1; case 26: if (!(attempt <= 100)) { _context.next = 78; break; } successes = 0; _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 31; _iterator = jobs[Symbol.iterator](); case 33: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context.next = 56; break; } jobId = _step.value; if (!(jobId === currentJobId)) { _context.next = 38; break; } successes++; return _context.abrupt('continue', 53); case 38: jobApi = travis.jobs(jobId); _context.next = 41; return regeneratorRuntime.awrap(promisify(jobApi.get, { context: jobApi })()); case 41: _ref4 = _context.sent; job = _ref4.job; if (!job.allow_failure) { _context.next = 46; break; } successes++; return _context.abrupt('continue', 53); case 46: if (!(job.state === 'created' || job.state === 'started')) { _context.next = 49; break; } console.error('[Travis Deploy Once]: Aborting attempt ' + attempt + ', because job ' + job.number + ' is still pending.'); return _context.abrupt('break', 56); case 49: if (!(job.state === 'errored' || job.state === 'failed')) { _context.next = 52; break; } console.error('[Travis Deploy Once]: Aborting at attempt ' + attempt + '. Job ' + job.number + ' failed.'); return _context.abrupt('return', false); case 52: if (job.state === 'passed') { successes++; } case 53: _iteratorNormalCompletion = true; _context.next = 33; break; case 56: _context.next = 62; break; case 58: _context.prev = 58; _context.t0 = _context['catch'](31); _didIteratorError = true; _iteratorError = _context.t0; case 62: _context.prev = 62; _context.prev = 63; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 65: _context.prev = 65; if (!_didIteratorError) { _context.next = 68; break; } throw _iteratorError; case 68: return _context.finish(65); case 69: return _context.finish(62); case 70: if (!(successes >= jobs.length)) { _context.next = 73; break; } console.error('[Travis Deploy Once]: Success at attempt ' + attempt + '. All ' + successes + ' jobs passed.'); return _context.abrupt('return', true); case 73: _context.next = 75; return regeneratorRuntime.awrap(Promise.delay(3000)); case 75: attempt++; _context.next = 26; break; case 78: throw new Error('Timeout. Could not get accumulated results after 100 attempts.'); case 79: case 'end': return _context.stop(); } } }, null, this, [[31, 58, 62, 70], [63,, 65, 69]]); };