const exec = require('child_process').exec; const sign = require("electron-osx-sign").signAsync; const notarize = require("electron-notarize").notarize; const name = "Crimata"; const dir = `${name}.app/Contents/Resources/app`; const registry = "https://gitlab.com/api/v4/projects/25637892/packages/generic/crimata/0.0.1/Crimata.zip"; const runShellCommand = (cmd) => (new Promise((resolve, reject) => { exec(cmd, (error, stdout, stderr) => { error ? reject(stderr) : resolve(stdout); }); })); // /projects/:id/packages/generic/:package_name/:package_version/:file_name?status=:status const signConfig = { "app": name + ".app", "hardened-runtime": true, "gatekeeper-assess": false, "signature-flags": "library", "entitlements": "entitlements.plist", "entitlements-inherit": "entitlements.plist", }; const notarizeConfig = { appPath: name + ".app", appleId: "gundersena@crimata.com", appBundleId: "com.crimata.CrimataMessenger", appleIdPassword: process.env["AC_PASSWORD"] }; (async function () { try { // console.log("Building..."); // await runShellCommand(`rm -rf ${dir} && mkdir ${dir} && cp -r {package.json,src,node_modules} ${dir} // `); // console.log("Cleaning..."); // await runShellCommand(`xattr -cr ${name}.app`); // console.log("Signing..."); // await sign(signConfig); // console.log("Notarizing..."); // await notarize(notarizeConfig); // console.log("Compressing..."); // await runShellCommand(`zip -vr ${name}.zip ${name}.app`); console.log("Uploading to Gitlab..."); await runShellCommand(`curl --header "PRIVATE-TOKEN: ${process.env["API_TOKEN"]}" --upload-file ${name}.zip "${registry}"`); } catch (e) { console.log(e); } })(); /** * Copy file from local to remote: * * scp -r Electron.app gundersena@crimata-server:~/Desktop/crimata/website/assets */