PackageEditor.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. var host = require("./Host");
  2. var config = require("./BuildConfig");
  3. namespace('package', function() {
  4. task('windows_editor', {
  5. async: true
  6. }, function() {
  7. var srcDir = config.artifactsRoot + "AtomicEditor/";
  8. var dstDir = config.artifactsRoot + "Dist/";
  9. host.cleanCreateDir(dstDir);
  10. var installerName = "AtomicEditor_Windows64_Setup_" + config.buildSHA + ".exe";
  11. var installerPath = config.artifactsRoot + "Dist/" + installerName;
  12. var nsisDefines = "/DATOMIC_ROOT=" + config.atomicRoot;
  13. nsisDefines += " /DEDITOR_VERSION=1";
  14. nsisDefines += " /DINSTALLER_NAME=" + installerName;
  15. var makeNSISCmd = config.atomicRoot + "\\Build\\Scripts\\Windows\\CreateInstaller.bat";
  16. makeNSISCmd += " " + nsisDefines + " " + config.atomicRoot + "/Build/Scripts/Windows/Installer/AtomicEditor.nsi";
  17. var editorExe = dstDir + "/AtomicEditor.exe";
  18. var pfxFile = process.env.ATOMIC_PFX_FILE;
  19. var pfxPW = process.env.ATOMIC_PFX_PW;
  20. var signBaseCmd = "signtool.exe sign /f " + pfxFile;
  21. signBaseCmd += " /p " + pfxPW;
  22. signBaseCmd += " /t http://timestamp.verisign.com/scripts/timestamp.dll";
  23. signBaseCmd += " /v ";
  24. var signEditorCmd = signBaseCmd + config.artifactsRoot + "AtomicEditor/AtomicEditor.exe";
  25. var signInstallerCmd = signBaseCmd + installerPath;
  26. var cmds = [];
  27. if (pfxFile && pfxPW) {
  28. cmds.push(signEditorCmd);
  29. }
  30. cmds.push(makeNSISCmd);
  31. if (pfxFile && pfxPW) {
  32. cmds.push(signInstallerCmd);
  33. }
  34. jake.exec(cmds, function() {
  35. complete();
  36. }, {
  37. printStdout: true
  38. });
  39. });
  40. task('mac_editor', {
  41. async: true
  42. }, function() {
  43. var editorAppFolder = config.editorAppFolder;
  44. var srcDir = config.artifactsRoot + "AtomicEditor/";
  45. var dstDir = config.artifactsRoot + "Dist/";
  46. var editorZip = dstDir + "AtomicEditor_MacOSX_" + config.buildSHA + ".zip";
  47. var devIDApp = config.devIDApp;
  48. host.cleanCreateDir(dstDir);
  49. cmds = [];
  50. if (config.jenkins) {
  51. cmds.push("security unlock-keychain -p \"jenkins\" /Users/jenkins/Library/Keychains/login.keychain ");
  52. }
  53. if (devIDApp) {
  54. cmds.push("codesign --deep --force --verify --verbose --sign \"Developer ID Application: " + devIDApp + "\" " + editorAppFolder);
  55. }
  56. cmds.push("cd " + srcDir + " && zip -r -X " + editorZip +" ./AtomicEditor.app");
  57. jake.exec(cmds, function() {
  58. console.log("Packaged Mac Editor to ", editorZip);
  59. if (!devIDApp) {
  60. console.log("\nDeveloper ID Application not specified, code is not be signed!\n\n");
  61. }
  62. complete();
  63. }, {
  64. printStdout: true,
  65. printStderr: true
  66. });
  67. });
  68. });