port to calling electron-builder directly

This commit is contained in:
Brendan Forster 2017-12-10 18:24:53 +11:00
parent 9037beb8ff
commit 5572b01e1a
5 changed files with 34 additions and 321 deletions

View file

@ -47,6 +47,7 @@ cache:
- node_modules
- $HOME/.electron
- .eslintcache
- $HOME/.cache/electron-builder
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.3.2

9
electron-builder.yml Normal file
View file

@ -0,0 +1,9 @@
linux:
category: "GNOME;GTK;Development"
packageCategory: "GNOME;GTK;Development"
icon: "app/static/logos"
target:
- deb
- rpm
- AppImage
maintainer: "GitHub, Inc <opensource+desktop@github.com>"

View file

@ -126,19 +126,8 @@
"@types/xml2js": "^0.4.0",
"electron": "1.7.9",
"electron-builder": "19.48.3",
"electron-installer-appimage": "^1.0.1",
"electron-mocha": "^5.0.0",
"electron-packager": "^10.1.0",
"electron-winstaller": "2.5.2"
},
"optionalDependencies": {
"electron-installer-debian": "^0.7.1",
"electron-installer-redhat": "^0.5.0"
},
"build": {
"linux": {
"category": "Development",
"icon": "app/static/logos"
}
}
}

View file

@ -6,7 +6,6 @@ import * as path from 'path'
import * as electronInstaller from 'electron-winstaller'
import { getProductName, getCompanyName } from '../app/package-info'
import {
getDistRoot,
getDistPath,
getOSXZipPath,
getWindowsIdentifierName,
@ -124,83 +123,25 @@ function packageWindows() {
})
}
function packageRedhat() {
const installer: ElectronInstallerRedhat = require('electron-installer-redhat')
function packageLinux() {
const electronBuilder = path.resolve(
__dirname,
'..',
'node_modules',
'.bin',
'electron-builder'
)
const options = {
src: distPath,
dest: outputDir,
arch: 'amd64',
}
const configPath = path.resolve(__dirname, '..', 'electron-builder.yml')
return new Promise((resolve, reject) => {
console.log('Creating .rpm package...')
installer(options, err => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
function packageDebian() {
const installer: ElectronInstallerDebian = require('electron-installer-debian')
const options = {
src: distPath,
dest: outputDir,
arch: 'amd64',
}
return new Promise((resolve, reject) => {
console.log('Creating .deb package...')
installer(options, err => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
function packageAppImage() {
// Because electron-builder's CLI has some limits, we need to
// implement a couple of workarounds.
//
// First, it'll use `dist/make` for it's output directory, which
// results in this vague error when the directory doesn't exist:
//
// libburn : SORRY : Neither stdio-path nor its directory exist
//
// so let's just trash it (if already existing) and create the directory
const makeDir = path.join(getDistRoot(), 'make')
fs.removeSync(makeDir)
fs.mkdirSync(makeDir)
const installer: ElectronInstallerAppImage = require('electron-installer-appimage')
const options = {
dir: distPath,
targetArch: 'x64',
}
return installer.default(options).then(() => {
// Second, we need to move the relevant files from dist/make up to
// the installers directory so it's alongside the other packages
cp.execSync(`cp ${makeDir}/*.AppImage ${outputDir}`)
})
}
async function packageLinux(): Promise<void> {
try {
await packageRedhat()
await packageDebian()
await packageAppImage()
console.log(`Successfully created packages at ${outputDir}`)
} catch (e) {
console.log(`error during packaging: ${e}`)
}
const args = [
'build',
'--prepackaged',
distPath,
'--x64',
'--config',
configPath,
]
cp.spawnSync(electronBuilder, args, { stdio: 'inherit' })
}

237
yarn.lock
View file

@ -14,14 +14,6 @@
version "2.1.1"
resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
"7zip-bin@^2.2.7":
version "2.2.7"
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.7.tgz#724802b8d6bda0bf2cfe61a4b86a820efc8ece93"
optionalDependencies:
"7zip-bin-linux" "^1.1.0"
"7zip-bin-mac" "^1.0.1"
"7zip-bin-win" "^2.1.1"
"7zip-bin@^2.3.4":
version "2.3.4"
resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.3.4.tgz#0861a3c99793dd794f4dd6175ec4ddfa6af8bc9d"
@ -312,18 +304,6 @@ anymatch@^1.3.0:
micromatch "^2.1.5"
normalize-path "^2.0.0"
app-package-builder@1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/app-package-builder/-/app-package-builder-1.3.3.tgz#252489ebd9e99fded822d01c7d6042d37aa6d844"
dependencies:
bluebird-lst "^1.0.5"
builder-util "^3.2.0"
builder-util-runtime "^2.5.0"
fs-extra-p "^4.4.4"
int64-buffer "^0.1.9"
js-yaml "^3.10.0"
rabin-bindings "~1.7.3"
app-package-builder@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/app-package-builder/-/app-package-builder-1.5.3.tgz#a24776370dae3b7c35e7aedfbc77b93137d2ab4c"
@ -455,19 +435,6 @@ asar@^0.11.0:
mkdirp "^0.5.0"
mksnapshot "^0.3.0"
asar@^0.13.0:
version "0.13.1"
resolved "https://registry.yarnpkg.com/asar/-/asar-0.13.1.tgz#dfc73f574a7db256b09ba62d1f0e95cd4a6cb8d3"
dependencies:
chromium-pickle-js "^0.2.0"
commander "^2.9.0"
cuint "^0.2.1"
glob "^6.0.4"
minimatch "^3.0.3"
mkdirp "^0.5.0"
mksnapshot "^0.3.0"
tmp "0.0.28"
asar@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/asar/-/asar-0.14.0.tgz#998b36a26abd0e590e55d9f92cfd3fd7a6051652"
@ -523,11 +490,7 @@ async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
async@^1.4.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.0.0, async@^2.1.2, async@^2.1.5, async@^2.4.1, async@^2.5.0:
async@^2.0.0, async@^2.1.2, async@^2.1.5, async@^2.4.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
dependencies:
@ -975,7 +938,7 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
bluebird-lst@^1.0.3, bluebird-lst@^1.0.4, bluebird-lst@^1.0.5:
bluebird-lst@^1.0.4, bluebird-lst@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.5.tgz#bebc83026b7e92a72871a3dc599e219cbfb002a9"
dependencies:
@ -1156,15 +1119,6 @@ buffers@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
builder-util-runtime@2.5.0, builder-util-runtime@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-2.5.0.tgz#22373d4faab8d89e0b077630aef76538deb38476"
dependencies:
bluebird-lst "^1.0.5"
debug "^3.1.0"
fs-extra-p "^4.4.4"
sax "^1.2.4"
builder-util-runtime@3.3.1, builder-util-runtime@^3.3.0, builder-util-runtime@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-3.3.1.tgz#d905cd5b7be7e60124a532ddd0e988e12c1bd5c3"
@ -1174,27 +1128,6 @@ builder-util-runtime@3.3.1, builder-util-runtime@^3.3.0, builder-util-runtime@^3
fs-extra-p "^4.4.5"
sax "^1.2.4"
builder-util@3.2.0, builder-util@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.2.0.tgz#08900f046c6b09c22a1f235f18644ae9eb963bc4"
dependencies:
"7zip-bin" "^2.2.7"
bluebird-lst "^1.0.5"
builder-util-runtime "^2.5.0"
chalk "^2.3.0"
debug "^3.1.0"
fs-extra-p "^4.4.4"
ini "^1.3.4"
is-ci "^1.0.10"
js-yaml "^3.10.0"
lazy-val "^1.0.2"
node-emoji "^1.8.1"
semver "^5.4.1"
source-map-support "^0.5.0"
stat-mode "^0.2.2"
temp-file "^2.0.3"
tunnel-agent "^0.6.0"
builder-util@3.4.4, builder-util@^3.4.2, builder-util@^3.4.3:
version "3.4.4"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.4.4.tgz#cab30f37c1ee4fb23d33b20ac71e76e3c8451d28"
@ -1873,7 +1806,7 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.3, debug@^2.6.8:
debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
@ -2018,18 +1951,6 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
dmg-builder@2.1.5:
version "2.1.5"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-2.1.5.tgz#f1f7d68d75cfb834e793c0681c7f50ced0a3038d"
dependencies:
bluebird-lst "^1.0.5"
builder-util "^3.2.0"
debug "^3.1.0"
fs-extra-p "^4.4.4"
iconv-lite "^0.4.19"
js-yaml "^3.10.0"
parse-color "^1.0.0"
dmg-builder@2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-2.1.8.tgz#80455063144a4e7446d55acae6e01bafc4137f7d"
@ -2184,41 +2105,6 @@ electron-builder@19.48.3:
update-notifier "^2.3.0"
yargs "^10.0.3"
electron-builder@^19.30.4:
version "19.43.3"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-19.43.3.tgz#87b1d39a50456a989b273a7effc04498dd9c4b6a"
dependencies:
"7zip-bin" "^2.2.7"
app-package-builder "1.3.3"
asar-integrity "0.2.3"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.5"
builder-util "3.2.0"
builder-util-runtime "2.5.0"
chalk "^2.3.0"
chromium-pickle-js "^0.2.0"
debug "^3.1.0"
dmg-builder "2.1.5"
ejs "^2.5.7"
electron-download-tf "4.3.4"
electron-osx-sign "0.4.7"
electron-publish "19.43.0"
fs-extra-p "^4.4.4"
hosted-git-info "^2.5.0"
is-ci "^1.0.10"
isbinaryfile "^3.0.2"
js-yaml "^3.10.0"
lazy-val "^1.0.2"
minimatch "^3.0.4"
normalize-package-data "^2.4.0"
plist "^2.1.0"
read-config-file "1.2.0"
sanitize-filename "^1.6.1"
semver "^5.4.1"
temp-file "^2.0.3"
update-notifier "^2.3.0"
yargs "^10.0.3"
electron-chromedriver@~1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/electron-chromedriver/-/electron-chromedriver-1.7.1.tgz#008c97976007aa4eb18491ee095e94d17ee47610"
@ -2268,44 +2154,6 @@ electron-download@^4.0.0, electron-download@^4.1.0:
semver "^5.3.0"
sumchecker "^2.0.1"
electron-installer-appimage@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/electron-installer-appimage/-/electron-installer-appimage-1.0.1.tgz#d7e815bec5819a2d6df50a244dd4ff3571c4d13a"
dependencies:
electron-builder "^19.30.4"
electron-installer-debian@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/electron-installer-debian/-/electron-installer-debian-0.7.1.tgz#a09f8345861fe924e25a714d4af2e89c428b22b7"
dependencies:
asar "^0.14.0"
async "^2.5.0"
debug "^3.1.0"
fs-extra "^4.0.2"
get-folder-size "^1.0.0"
glob "^7.1.2"
lodash "^4.17.4"
mkdirp "^0.5.1"
semver "^5.4.1"
temp "^0.8.3"
word-wrap "^1.2.3"
yargs "^10.0.3"
electron-installer-redhat@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/electron-installer-redhat/-/electron-installer-redhat-0.5.0.tgz#09699cd37bc911cf7ff99587ba77aa205e836cd2"
dependencies:
asar "^0.13.0"
async "^2.1.5"
debug "^2.6.3"
fs-extra "^2.1.2"
glob "^7.1.1"
lodash "^4.17.4"
parse-author "^2.0.0"
temp "^0.8.3"
word-wrap "^1.2.1"
yargs "7.0.2"
electron-mocha@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/electron-mocha/-/electron-mocha-5.0.0.tgz#415b86166a6bf80125fc4106ecc2545669c284ac"
@ -2350,17 +2198,6 @@ electron-packager@^10.1.0:
semver "^5.3.0"
yargs-parser "^8.0.0"
electron-publish@19.43.0:
version "19.43.0"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.43.0.tgz#3a5b8f6317a2a83faa008c26594220ffb4006664"
dependencies:
bluebird-lst "^1.0.5"
builder-util "^3.2.0"
builder-util-runtime "^2.5.0"
chalk "^2.3.0"
fs-extra-p "^4.4.4"
mime "^2.0.3"
electron-publish@19.46.5:
version "19.46.5"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.46.5.tgz#eb545af247edc78297a9ace6ebb2bad7c0fcc2a4"
@ -3009,7 +2846,7 @@ fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
fs-extra-p@^4.4.0, fs-extra-p@^4.4.4:
fs-extra-p@^4.4.4:
version "4.4.4"
resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.4.tgz#396ad6f914eb2954e1700fd0e18288301ed45f04"
dependencies:
@ -3129,13 +2966,6 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
get-folder-size@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-1.0.0.tgz#134d663a0e745611b72f71c83b13f1b12f31ba29"
dependencies:
async "^1.4.2"
minimist "^1.2.0"
get-func-name@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
@ -3624,10 +3454,6 @@ int64-buffer@^0.1.10:
version "0.1.10"
resolved "https://registry.yarnpkg.com/int64-buffer/-/int64-buffer-0.1.10.tgz#277b228a87d95ad777d07c13832022406a473423"
int64-buffer@^0.1.9:
version "0.1.9"
resolved "https://registry.yarnpkg.com/int64-buffer/-/int64-buffer-0.1.9.tgz#9e039da043b24f78b196b283e04653ef5e990f61"
interpret@^1.0.0, interpret@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
@ -4528,7 +4354,7 @@ mz@^2.6.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@^2.3.0, nan@^2.3.2, nan@^2.7.0:
nan@^2.3.0, nan@^2.3.2:
version "2.7.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
@ -5551,14 +5377,6 @@ querystring@0.2.0, querystring@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
rabin-bindings@~1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/rabin-bindings/-/rabin-bindings-1.7.3.tgz#fb6ae9dbf897988bc2504ccf4832ee4f0546d32a"
dependencies:
bindings "^1.3.0"
nan "^2.7.0"
prebuild-install "^2.3.0"
rabin-bindings@~1.7.4:
version "1.7.4"
resolved "https://registry.yarnpkg.com/rabin-bindings/-/rabin-bindings-1.7.4.tgz#174581d3b9a3c1b09ece75dc21f1b4ae0dd79974"
@ -5606,20 +5424,6 @@ rcedit@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-0.9.0.tgz#3910df57345399e2b0325f4a519007f89e55ef1c"
read-config-file@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-1.2.0.tgz#1fd7dc8ccdad838cac9f686182625290fc94f456"
dependencies:
ajv "^5.2.3"
ajv-keywords "^2.1.0"
bluebird-lst "^1.0.4"
dotenv "^4.0.0"
dotenv-expand "^4.0.1"
fs-extra-p "^4.4.4"
js-yaml "^3.10.0"
json5 "^0.5.1"
lazy-val "^1.0.2"
read-config-file@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-1.2.1.tgz#f889ea5c13372319433f5df09d7a9742c72d0b25"
@ -6574,15 +6378,6 @@ tar@^2.0.0, tar@^2.2.1:
fstream "^1.0.2"
inherits "2"
temp-file@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-2.0.3.tgz#0de2540629fc77a6406ca56f50214d1f224947ac"
dependencies:
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.3"
fs-extra-p "^4.4.0"
lazy-val "^1.0.2"
temp-file@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.0.0.tgz#1e9eca9c411a41564f5746bc2774c39080021db0"
@ -7258,10 +7053,6 @@ window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
word-wrap@^1.2.1, word-wrap@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
@ -7395,24 +7186,6 @@ yargs-parser@^8.0.0:
dependencies:
camelcase "^4.1.0"
yargs@7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.0.2.tgz#115b97df1321823e8b8648e8968c782521221f67"
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
os-locale "^1.4.0"
read-pkg-up "^1.0.1"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^1.0.2"
which-module "^1.0.0"
y18n "^3.2.1"
yargs-parser "^5.0.0"
yargs@^10.0.3:
version "10.0.3"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae"