Browse Source

chore: update package.json scripts for gn build and automated releases (#14612)

* Removes un-used and non-functional code coverage helpers
* Removes un-used release script aliases
* Moves TLS to a lib folder for cleaner directory structure
* Implements start.py as start.js for the GN build
* Adds a re-usable getElectronExec helper for future scripts
* Refactors spec runner to use the helper
Samuel Attard 6 years ago
parent
commit
238ea29fa8
8 changed files with 52 additions and 26 deletions
  1. 3 9
      package.json
  2. 0 0
      script/lib/tls/index.js
  3. 0 0
      script/lib/tls/tls.cert.pem
  4. 0 0
      script/lib/tls/tls.key.pem
  5. 26 0
      script/lib/utils.js
  6. 4 16
      script/spec-runner.js
  7. 18 0
      script/start.js
  8. 1 1
      script/tls.py

+ 3 - 9
package.json

@@ -51,8 +51,6 @@
     "bump-version": "./script/bump-version.py",
     "check-tls": "python ./script/tls.py",
     "clang-format": "find atom/ brightray/ chromium_src/ -iname *.h -o -iname *.cc -o -iname *.mm | xargs clang-format -i",
-    "coverage": "npm run instrument-code-coverage && npm test -- --use_instrumented_asar",
-    "instrument-code-coverage": "electabul instrument --input-path ./lib --output-path ./out/coverage/electron.asar",
     "lint": "npm run lint:js && npm run lint:cpp && npm run lint:clang-format && npm run lint:py && npm run lint:docs",
     "lint:js": "standard && cd spec && standard",
     "lint:clang-format": "python script/run-clang-format.py -r -c atom/ chromium_src/ brightray/ || (echo \"\\nCode not formatted correctly.\" && exit 1)",
@@ -61,18 +59,14 @@
     "lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:docs-relative-links",
     "lint:docs-relative-links": "python ./script/check-relative-doc-links.py",
     "lint:js-in-markdown": "standard-markdown docs",
-    "create-api-json": "electron-docs-linter docs --outfile=electron-api.json --version=4.0.0-nightly.20180823",
+    "create-api-json": "electron-docs-linter docs --outfile=electron-api.json --version=$npm_package_version",
     "create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --in=electron-api.json --out=electron.d.ts",
-    "mock-release": "node ./script/ci-release-build.js",
     "preinstall": "node -e 'process.exit(0)'",
-    "publish-to-npm": "node ./script/publish-to-npm.js",
     "precommit": "python script/run-clang-format.py -r -c atom/ chromium_src/ brightray/ && node ./script/cpplint.js -c && npm run lint:js && remark docs -qf || (echo \"Code not formatted correctly.\" && exit 1)",
     "prepack": "check-for-leaks",
     "prepush": "check-for-leaks",
-    "prepare-release": "node ./script/prepare-release.js",
-    "release": "node ./script/release.js",
-    "repl": "python ./script/start.py --interactive",
-    "start": "python ./script/start.py",
+    "repl": "node ./script/start.js --interactive",
+    "start": "node ./script/start.js",
     "test": "node ./script/spec-runner.js electron/spec"
   },
   "license": "MIT",

+ 0 - 0
script/tls.js → script/lib/tls/index.js


+ 0 - 0
script/tls.cert.pem → script/lib/tls/tls.cert.pem


+ 0 - 0
script/tls.key.pem → script/lib/tls/tls.key.pem


+ 26 - 0
script/lib/utils.js

@@ -0,0 +1,26 @@
+const OUT_DIR = process.env.ELECTRON_OUT_DIR || 'Default'
+
+const path = require('path')
+
+function getElectronExec () {
+  switch (process.platform) {
+    case 'darwin':
+      return `out/${OUT_DIR}/Electron.app/Contents/MacOS/Electron`
+    case 'win32':
+      return `out/${OUT_DIR}/electron.exe`
+    case 'linux':
+      return `out/${OUT_DIR}/electron`
+    default:
+      throw new Error('Unknown platform')
+  }
+}
+
+function getAbsoluteElectronExec () {
+  return path.resolve(__dirname, '../../..', getElectronExec())
+}
+
+module.exports = {
+  getElectronExec,
+  getAbsoluteElectronExec,
+  OUT_DIR
+}

+ 4 - 16
script/spec-runner.js

@@ -4,9 +4,10 @@ const fs = require('fs')
 const { hashElement } = require('folder-hash')
 const path = require('path')
 
+const utils = require('./lib/utils')
+
 const BASE = path.resolve(__dirname, '../..')
 const NPM_CMD = process.platform === 'win32' ? 'npm.cmd' : 'npm'
-const OUT_DIR = process.env.ELECTRON_SPEC_OUT_DIR || 'Default'
 
 const specHashPath = path.resolve(__dirname, '../spec/.hash')
 
@@ -20,7 +21,7 @@ getSpecHash().then(([currentSpecHash, currentSpecInstallHash]) => {
   if (specChanged || installChanged) {
     const out = cp.spawnSync(NPM_CMD, ['install'], {
       env: Object.assign({}, process.env, {
-        npm_config_nodedir: path.resolve(BASE, `out/${OUT_DIR}/gen/node_headers`),
+        npm_config_nodedir: path.resolve(BASE, `out/${utils.OUT_DIR}/gen/node_headers`),
         npm_config_msvs_version: '2017'
       }),
       cwd: path.resolve(__dirname, '../spec')
@@ -35,7 +36,7 @@ getSpecHash().then(([currentSpecHash, currentSpecInstallHash]) => {
       })
   }
 }).then(() => {
-  let exe = path.resolve(BASE, getElectronExec())
+  let exe = path.resolve(BASE, utils.getElectronExec())
   const args = process.argv.slice(2)
   if (process.platform === 'linux') {
     args.unshift(path.resolve(__dirname, 'lib/dbus_mock.py'), exe)
@@ -50,19 +51,6 @@ getSpecHash().then(([currentSpecHash, currentSpecInstallHash]) => {
   })
 })
 
-function getElectronExec () {
-  switch (process.platform) {
-    case 'darwin':
-      return 'out/Default/Electron.app/Contents/MacOS/Electron'
-    case 'win32':
-      return 'out/Default/electron.exe'
-    case 'linux':
-      return 'out/Default/electron'
-    default:
-      throw new Error('Unknown path')
-  }
-}
-
 function getSpecHash () {
   return Promise.all([
     new Promise((resolve) => {

+ 18 - 0
script/start.js

@@ -0,0 +1,18 @@
+const cp = require('child_process')
+
+const utils = require('./lib/utils')
+
+const electronPath = utils.getAbsoluteElectronExec()
+
+var child = cp.spawn(electronPath, process.argv.slice(2), { stdio: 'inherit' })
+child.on('close', (code) => process.exit(code))
+
+const handleTerminationSignal = (signal) =>
+  process.on(signal, () => {
+    if (!child.killed) {
+      child.kill(signal)
+    }
+  })
+
+handleTerminationSignal('SIGINT')
+handleTerminationSignal('SIGTERM')

+ 1 - 1
script/tls.py

@@ -13,7 +13,7 @@ ctx.verify_mode = ssl.CERT_NONE
 
 def check_tls(verbose):
   process = subprocess.Popen(
-    'node tls.js',
+    'node lib/tls',
     cwd=os.path.dirname(os.path.realpath(__file__)),
     shell=True,
     stdout=subprocess.PIPE,