#!/usr/bin/env node --harmony_collections var cp = require('./utils/child-process-wrapper.js'); var fs = require('fs'); var path = require('path'); process.chdir(path.dirname(__dirname)); if (process.platform == 'linux') throw new Error('cibuild can not run on linux yet!'); var homeDir = process.platform == 'win32' ? process.env.USERPROFILE : process.env.HOME; function readEnvironmentVariables() { var credentialsPath = '/var/lib/jenkins/config/atomcredentials'; try { var credentials = fs.readFileSync(credentialsPath, 'utf8'); var lines = credentials.trim().split('\n'); for (i in lines) { var parts = lines[i].split('='); var key = parts[0].trim(); var value = parts[1].trim().substr(1, parts[1].length - 2); process.env[key] = value; } } catch(error) { } } readEnvironmentVariables(); cp.safeExec.bind(global, 'node script/bootstrap', function(error) { if (error) process.exit(1); var async = require('async'); var gruntPath = path.join('build', 'node_modules', '.bin', 'grunt') + (process.platform === 'win32' ? '.cmd' : ''); var tasks = [ require('rimraf').bind(global, path.join(homeDir, '.atom')), cp.safeExec.bind(global, 'git clean -dff'), cp.safeExec.bind(global, gruntPath + ' ci --gruntfile build/Gruntfile.coffee --stack --no-color'), ] if (process.platform === 'darwin') { tasks.push(cp.safeExec.bind(global, 'build/node_modules/.bin/coffee script/upload-release')) } async.series(tasks, function(error) { process.exit(error ? 1 : 0); }); })();