mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-05 14:09:46 -06:00
* electron@7.x * node12.8.1-chrome78-ff70 * Revert "node12.8.1-chrome78-ff70" for now This reverts commitdb2d521994. * update sendCommand to log on all sendcommands * promisification in 6.x * Revert "Revert "node12.8.1-chrome78-ff70" for now" This reverts commit57fe764098. * fix sendcommand * fix cdp in electron * fix desktop-gui test * skip tests that will be fixed by #4973 * bump MAX_ALLOWED_FILE_SIZE :/ * update electron browser spec * make new dialog code null-proof * add failing e2e test for issue 5475 * bump electron packager * add e2e snapshot * update deprecated electron getters/setters https://github.com/electron/electron/blob/7-1-x/docs/api/modernization/property-updates.md * build and test on Mac * use electron-builder 20.41.0 that adds an option to use hardened Mac OS, which is necessary for code notarization later. See https://github.com/electron-userland/electron-builder/releases/tag/v20.41.0 and https://github.com/electron-userland/electron-builder/pull/3858 * electron-builder and pass hardenedRuntime: true * uncomment build * upload built binary on mac * back to 20.41.0, trying after sign hook without success * use current electron-builder alias instead of build * retry smoke test on first failure * testing * trying to notarize signed app (that does not have node_modules yet) * env variable names * copy node_modules ourselves * build and bundle binary on mac on circle, inject new context * enable build steps before electron build * increase mac build timeout * update build folder on mac * uncomment actual electron build command * set linux target to zip * set zip as target for all platforms * updated steps * put notarization hook back * tweaks for icons * remove dist electron before code sign * icons per platform * make node_modules copy path platform-specific * fix linux build unpacked folder * build mac * fix lint * test new mac binary against kitchensink * working on Linux build * try building entire thing on Linux * removing correct electron dist folder * increase zip size limit for now * add folder rename on Linux from linux-unpacked to Cypress * print file sizes before zipping * move linux-unpacked to build dir function * try deleting second electron file, but code signing probably would not work * test windows build [build binary] * ignore tsc errors * windows build path * windows [build binary] * update windows build folder * increase binary build timeout on Mac * no need to pass our dist folder * adding explicit list of additional binaries to code sign on mac * yarn lock * uncomment necessary build steps * electron dir for Linux * yarn lock again * back to execa v3 * use execa v4 in packages launcher * yarn lock again and again * updated tests that use execa * print build folder * add executable name on Linux * get rid of execa.shell in build scripts * remove old and commented out code * need to test building binary on Windows * throw error from after sign hook if fails * use execa to zip * yarn lock * fix after merge variable * update test * add nohoist ffmpeg installer * patch * yarn types pass * yarn lock has binary Co-authored-by: Zach Bloomquist <github@chary.us> Co-authored-by: Brian Mann <brian.mann86@gmail.com>
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
// from https://medium.com/@TwitterArchiveEraser/notarize-electron-apps-7a5f988406db
|
|
// to enable running this hook, set in "electron-builder.json" the option
|
|
// "afterSign": "./scripts/after-sign-hook.js"
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
let electron_notarize = require('electron-notarize')
|
|
|
|
/* eslint-disable no-console */
|
|
|
|
module.exports = async function (params) {
|
|
// Only notarize the app on Mac OS only.
|
|
if (process.platform !== 'darwin') {
|
|
console.log('not Mac, skipping after sign hook')
|
|
|
|
return
|
|
}
|
|
|
|
console.log('afterSign hook triggered in', params.appOutDir)
|
|
|
|
// Same appId in electron-builder.
|
|
let appId = 'com.electron.cypress'
|
|
|
|
let appPath = path.join(params.appOutDir, `${params.packager.appInfo.productFilename}.app`)
|
|
|
|
if (!fs.existsSync(appPath)) {
|
|
throw new Error(`Cannot find application at: ${appPath}`)
|
|
}
|
|
|
|
console.log(`Notarizing ${appId} found at ${appPath}`)
|
|
|
|
if (!process.env.NOTARIZE_APP_APPLE_ID) {
|
|
throw new Error('Missing Apple id for notarization: NOTARIZE_APP_APPLE_ID')
|
|
}
|
|
|
|
if (!process.env.NOTARIZE_APP_PASSWORD) {
|
|
throw new Error('Missing Apple password for notarization: NOTARIZE_APP_PASSWORD')
|
|
}
|
|
|
|
try {
|
|
await electron_notarize.notarize({
|
|
appBundleId: appId,
|
|
appPath,
|
|
appleId: process.env.NOTARIZE_APP_APPLE_ID,
|
|
appleIdPassword: process.env.NOTARIZE_APP_PASSWORD,
|
|
})
|
|
} catch (error) {
|
|
console.error('could not notarize application')
|
|
console.error(error)
|
|
throw error
|
|
}
|
|
|
|
console.log(`Done notarizing ${appId}`)
|
|
}
|