afterSignHook.cjs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // See: https://medium.com/@TwitterArchiveEraser/notarize-electron-apps-7a5f988406db
  2. const fs = require('fs')
  3. const path = require('path')
  4. const notarizer = require('electron-notarize')
  5. module.exports = async function (params) {
  6. // notarize the app on Mac OS only.
  7. if (process.platform !== 'darwin' || !process.env.GITHUB_REF || !process.env.GITHUB_REF.startsWith('refs/tags/')) {
  8. return
  9. }
  10. console.log('afterSign hook triggered', params)
  11. let appId = 'org.tabby'
  12. let appPath = path.join(params.appOutDir, params._pathOverride || `${params.packager.appInfo.productFilename}.app`)
  13. if (!fs.existsSync(appPath)) {
  14. throw new Error(`Cannot find application at: ${appPath}`)
  15. }
  16. console.log(`Notarizing ${appId} found at ${appPath}`)
  17. try {
  18. await notarizer.notarize({
  19. appBundleId: appId,
  20. appPath: appPath,
  21. appleId: process.env.APPSTORE_USERNAME,
  22. appleIdPassword: process.env.APPSTORE_PASSWORD,
  23. })
  24. } catch (error) {
  25. console.error(error)
  26. }
  27. console.log(`Done notarizing ${appId}`)
  28. }