From 927ac4039dabae0e2ac558ccee8a1e939fecb3ec Mon Sep 17 00:00:00 2001 From: develar Date: Sat, 18 Mar 2017 10:42:49 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20improve=20debuggability=20=E2=80=94=20pr?= =?UTF-8?q?int=20effective=20config=20if=20debug=20enabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dictionaries/develar.xml | 1 + docs/Developer API.md | 54 ++++++------ docs/Options.md | 44 +++------- package.json | 6 +- packages/electron-builder-core/src/core.ts | 21 +++++ packages/electron-builder-core/tsconfig.json | 3 + .../src/squirrelWindows.ts | 2 +- packages/electron-builder/package.json | 4 +- packages/electron-builder/src/index.ts | 2 +- packages/electron-builder/src/metadata.ts | 22 +---- .../src/options/linuxOptions.ts | 3 +- .../src/options/macOptions.ts | 3 +- .../src/options/winOptions.ts | 3 +- packages/electron-builder/src/packager.ts | 7 ++ .../electron-builder/src/platformPackager.ts | 4 +- .../src/publish/PublishManager.ts | 86 +++++++++++++++++-- .../electron-builder/src/publish/publisher.ts | 79 ----------------- .../src/targets/ArchiveTarget.ts | 2 + .../electron-builder/src/targets/appImage.ts | 2 +- packages/electron-builder/src/targets/appx.ts | 2 +- packages/electron-builder/src/targets/dmg.ts | 6 +- packages/electron-builder/src/targets/fpm.ts | 2 +- packages/electron-builder/src/targets/nsis.ts | 4 +- packages/electron-builder/src/targets/pkg.ts | 2 +- packages/electron-builder/src/targets/snap.ts | 2 +- .../src/targets/targetFactory.ts | 5 +- .../electron-publisher-s3/src/s3Publisher.ts | 6 ++ .../fixtures/app-executable-deps/package.json | 2 +- test/fixtures/test-app-one/package.json | 2 +- test/fixtures/test-app/package.json | 2 +- test/out/__snapshots__/RepoSlugTest.js.snap | 5 -- .../mac/__snapshots__/macArchiveTest.js.snap | 2 +- test/src/RepoSlugTest.ts | 15 +++- test/src/helpers/config.ts | 2 +- test/src/mac/macArchiveTest.ts | 2 +- yarn.lock | 32 ++++--- 36 files changed, 221 insertions(+), 220 deletions(-) delete mode 100644 packages/electron-builder/src/publish/publisher.ts diff --git a/.idea/dictionaries/develar.xml b/.idea/dictionaries/develar.xml index f4b094b674f..2b8a27afdbd 100644 --- a/.idea/dictionaries/develar.xml +++ b/.idea/dictionaries/develar.xml @@ -44,6 +44,7 @@ customfunction dcterms debian + debuggability depcheck devel develar diff --git a/docs/Developer API.md b/docs/Developer API.md index c79248eb29e..b83c3218cf6 100644 --- a/docs/Developer API.md +++ b/docs/Developer API.md @@ -27,8 +27,6 @@
electron-builder/out/platformPackager
-
electron-builder/out/publish/publisher
-
electron-builder/out/publish/PublishManager
electron-builder/out/readInstalled
@@ -1324,29 +1322,6 @@ | --- | --- | | ext | string | - - -## electron-builder/out/publish/publisher - -* [electron-builder/out/publish/publisher](#module_electron-builder/out/publish/publisher) - * [`.getCiTag()`](#module_electron-builder/out/publish/publisher.getCiTag) ⇒ any - * [`.getResolvedPublishConfig(packager, publishConfig, errorIfCannot)`](#module_electron-builder/out/publish/publisher.getResolvedPublishConfig) ⇒ Promise< | [PublishConfiguration](Publishing-Artifacts#PublishConfiguration)> - - - -### `electron-builder/out/publish/publisher.getCiTag()` ⇒ any -**Kind**: method of [electron-builder/out/publish/publisher](#module_electron-builder/out/publish/publisher) - - -### `electron-builder/out/publish/publisher.getResolvedPublishConfig(packager, publishConfig, errorIfCannot)` ⇒ Promise< | [PublishConfiguration](Publishing-Artifacts#PublishConfiguration)> -**Kind**: method of [electron-builder/out/publish/publisher](#module_electron-builder/out/publish/publisher) - -| Param | Type | -| --- | --- | -| packager | [BuildInfo](Options#BuildInfo) | -| publishConfig | [PublishConfiguration](Publishing-Artifacts#PublishConfiguration) | -| errorIfCannot | boolean | - ## electron-builder/out/publish/PublishManager @@ -1356,7 +1331,7 @@ * [`.awaitTasks()`](#module_electron-builder/out/publish/PublishManager.PublishManager+awaitTasks) ⇒ Promise<void> * [`.cancelTasks()`](#module_electron-builder/out/publish/PublishManager.PublishManager+cancelTasks) * [`.getOrCreatePublisher(publishConfig, buildInfo)`](#module_electron-builder/out/publish/PublishManager.PublishManager+getOrCreatePublisher) ⇒ null | [Publisher](Publishing-Artifacts#Publisher) - * [`.computeDownloadUrl(publishConfig, fileName, packager, arch)`](#module_electron-builder/out/publish/PublishManager.computeDownloadUrl) ⇒ string + * [`.computeDownloadUrl(publishConfig, fileName, packager)`](#module_electron-builder/out/publish/PublishManager.computeDownloadUrl) ⇒ string * [`.createPublisher(context, version, publishConfig, options)`](#module_electron-builder/out/publish/PublishManager.createPublisher) ⇒ null | [Publisher](Publishing-Artifacts#Publisher) * [`.getPublishConfigs(packager, targetSpecificOptions)`](#module_electron-builder/out/publish/PublishManager.getPublishConfigs) ⇒ Promise< | Array> * [`.getPublishConfigsForUpdateInfo(packager, publishConfigs)`](#module_electron-builder/out/publish/PublishManager.getPublishConfigsForUpdateInfo) ⇒ Promise< | Array> @@ -1392,7 +1367,7 @@ -### `electron-builder/out/publish/PublishManager.computeDownloadUrl(publishConfig, fileName, packager, arch)` ⇒ string +### `electron-builder/out/publish/PublishManager.computeDownloadUrl(publishConfig, fileName, packager)` ⇒ string **Kind**: method of [electron-builder/out/publish/PublishManager](#module_electron-builder/out/publish/PublishManager) | Param | Type | @@ -1400,7 +1375,6 @@ | publishConfig | [PublishConfiguration](Publishing-Artifacts#PublishConfiguration) | | fileName | string | null | | packager | [PlatformPackager](#PlatformPackager)<any> | -| arch | [Arch](#Arch) | null | @@ -1422,7 +1396,7 @@ | Param | Type | | --- | --- | | packager | [PlatformPackager](#PlatformPackager)<any> | -| targetSpecificOptions | [PlatformSpecificBuildOptions](Options#PlatformSpecificBuildOptions) | null | undefined | +| targetSpecificOptions | [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) | null | undefined | @@ -1946,7 +1920,7 @@ | Param | Type | | --- | --- | | raw | Map<[Arch](#Arch) | Array<string>> | -| options | [PlatformSpecificBuildOptions](Options#PlatformSpecificBuildOptions) | +| options | [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) | | platform | [Platform](#Platform) | @@ -2506,6 +2480,7 @@ * [`.FileAssociation`](#FileAssociation) * [`.FilePattern`](#FilePattern) * [`.MetadataDirectories`](#MetadataDirectories) + * [`.PlatformSpecificBuildOptions`](#PlatformSpecificBuildOptions) ⇐ [TargetSpecificOptions](#TargetSpecificOptions) * [`.Protocol`](#Protocol) * [`.RepositoryInfo`](#RepositoryInfo) * [`.SourceRepositoryInfo`](#SourceRepositoryInfo) @@ -2607,6 +2582,24 @@ On Windows works only if [nsis.perMachine](/~https://github.com/electron-userland/ | output = "dist"| string \| null | The output directory. | | app| string \| null | The application directory (containing the application package.json), defaults to `app`, `www` or working directory. | + + +### `PlatformSpecificBuildOptions` ⇐ [TargetSpecificOptions](#TargetSpecificOptions) +**Kind**: interface of [electron-builder-core](#module_electron-builder-core) +**Extends**: [TargetSpecificOptions](#TargetSpecificOptions) +**Properties** + +| Name | Type | +| --- | --- | +| files| Array<string> \| string \| null | +| extraFiles| Array<string \| [FilePattern](#FilePattern)> \| [FilePattern](#FilePattern) \| string \| null | +| extraResources| Array<string \| [FilePattern](#FilePattern)> \| [FilePattern](#FilePattern) \| string \| null | +| asarUnpack| Array<string> \| string \| null | +| asar| [AsarOptions](#AsarOptions) \| boolean \| null | +| target| Array<string \| [TargetConfig](#TargetConfig)> \| string \| [TargetConfig](#TargetConfig) \| null | +| icon| string \| null | +| fileAssociations| Array<[FileAssociation](#FileAssociation)> \| [FileAssociation](#FileAssociation) | + ### `Protocol` @@ -2667,6 +2660,7 @@ Please note — on macOS [you need to register an `open-url` event handler](http | --- | --- | --- | | artifactName| string \| null | The [artifact file name pattern](/~https://github.com/electron-userland/electron-builder/wiki/Options#artifact-file-name-pattern). | | forceCodeSigning| boolean | | +| publish| null \| string \| [GithubOptions](Publishing-Artifacts#GithubOptions) \| [S3Options](Publishing-Artifacts#S3Options) \| [GenericServerOptions](Publishing-Artifacts#GenericServerOptions) \| [BintrayOptions](Publishing-Artifacts#BintrayOptions) \| Array | | diff --git a/docs/Options.md b/docs/Options.md index 79916c33fd0..ab38f555863 100644 --- a/docs/Options.md +++ b/docs/Options.md @@ -97,23 +97,22 @@ You can use [file macros](#file-macros) in the `from` and `to` fields as well. * [`.BuildOptions`](#BuildOptions) ⇐ [PublishOptions](Publishing-Artifacts#PublishOptions) * [`.BuildResult`](#BuildResult) * [`.CliOptions`](#CliOptions) ⇐ [PublishOptions](Publishing-Artifacts#PublishOptions) - * [`.Config`](#Config) ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) + * [`.Config`](#Config) ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) * [`.DebOptions`](#DebOptions) ⇐ [LinuxBuildOptions](#LinuxBuildOptions) * [`.DmgContent`](#DmgContent) * [`.DmgOptions`](#DmgOptions) ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) * [`.DmgWindow`](#DmgWindow) - * [`.LinuxBuildOptions`](#LinuxBuildOptions) ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) - * [`.MacOptions`](#MacOptions) ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) + * [`.LinuxBuildOptions`](#LinuxBuildOptions) ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) + * [`.MacOptions`](#MacOptions) ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) * [`.MasBuildOptions`](#MasBuildOptions) ⇐ [MacOptions](#MacOptions) * [`.Metadata`](#Metadata) * [`.NsisOptions`](#NsisOptions) * [`.NsisWebOptions`](#NsisWebOptions) ⇐ [NsisOptions](#NsisOptions) * [`.PackagerOptions`](#PackagerOptions) * [`.PkgOptions`](#PkgOptions) ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) - * [`.PlatformSpecificBuildOptions`](#PlatformSpecificBuildOptions) ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) * [`.SnapOptions`](#SnapOptions) ⇐ [LinuxBuildOptions](#LinuxBuildOptions) * [`.SquirrelWindowsOptions`](#SquirrelWindowsOptions) ⇐ [WinBuildOptions](#WinBuildOptions) - * [`.WinBuildOptions`](#WinBuildOptions) ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) + * [`.WinBuildOptions`](#WinBuildOptions) ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) * [.Packager](#Packager) ⇐ [BuildInfo](#BuildInfo) * [`.build(rawOptions)`](#module_electron-builder.build) ⇒ Promise<Array<string>> * [`.createTargets(platforms, type, arch)`](#module_electron-builder.createTargets) ⇒ Map<[Platform](Developer-API#Platform) | Map<[Arch](Developer-API#Arch) | Array<string>>> @@ -224,11 +223,11 @@ AppX Options -### `Config` ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) +### `Config` ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) Configuration Options **Kind**: interface of [electron-builder](#module_electron-builder) -**Extends**: [TargetSpecificOptions](Developer-API#TargetSpecificOptions) +**Extends**: [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) **Properties** | Name | Type | Description | @@ -362,11 +361,11 @@ DMG Windows Position and Size -### `LinuxBuildOptions` ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +### `LinuxBuildOptions` ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) Linux Options **Kind**: interface of [electron-builder](#module_electron-builder) -**Extends**: [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +**Extends**: [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) **Properties** | Name | Type | Description | @@ -386,11 +385,11 @@ Linux Options -### `MacOptions` ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +### `MacOptions` ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) macOS Options **Kind**: interface of [electron-builder](#module_electron-builder) -**Extends**: [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +**Extends**: [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) **Properties** | Name | Type | Description | @@ -527,25 +526,6 @@ Web Installer Specific Options | installLocation = "/Applications"| string \| null | The install location. | | identity| string \| null | | - - -### `PlatformSpecificBuildOptions` ⇐ [TargetSpecificOptions](Developer-API#TargetSpecificOptions) -**Kind**: interface of [electron-builder](#module_electron-builder) -**Extends**: [TargetSpecificOptions](Developer-API#TargetSpecificOptions) -**Properties** - -| Name | Type | -| --- | --- | -| files| Array<string> \| string \| null | -| extraFiles| Array<string \| [FilePattern](Developer-API#FilePattern)> \| [FilePattern](Developer-API#FilePattern) \| string \| null | -| extraResources| Array<string \| [FilePattern](Developer-API#FilePattern)> \| [FilePattern](Developer-API#FilePattern) \| string \| null | -| asarUnpack| Array<string> \| string \| null | -| asar| [AsarOptions](Developer-API#AsarOptions) \| boolean \| null | -| target| Array<string \| [TargetConfig](Developer-API#TargetConfig)> \| string \| [TargetConfig](Developer-API#TargetConfig) \| null | -| icon| string \| null | -| fileAssociations| Array<[FileAssociation](Developer-API#FileAssociation)> \| [FileAssociation](Developer-API#FileAssociation) | -| publish| null \| string \| [GithubOptions](Publishing-Artifacts#GithubOptions) \| [S3Options](Publishing-Artifacts#S3Options) \| [GenericServerOptions](Publishing-Artifacts#GenericServerOptions) \| [BintrayOptions](Publishing-Artifacts#BintrayOptions) \| Array | - ### `SnapOptions` ⇐ [LinuxBuildOptions](#LinuxBuildOptions) @@ -586,11 +566,11 @@ To use Squirrel.Windows please install `electron-builder-squirrel-windows` depen -### `WinBuildOptions` ⇐ [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +### `WinBuildOptions` ⇐ [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) Windows Specific Options **Kind**: interface of [electron-builder](#module_electron-builder) -**Extends**: [PlatformSpecificBuildOptions](#PlatformSpecificBuildOptions) +**Extends**: [PlatformSpecificBuildOptions](Developer-API#PlatformSpecificBuildOptions) **Properties** | Name | Type | Description | diff --git a/package.json b/package.json index 38af99a121a..7af45078893 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "dependencies": { "7zip-bin": "^2.0.4", "ajv": "^5.0.4-beta.0", - "ajv-keywords": "^2.0.1-beta.1", + "ajv-keywords": "^2.0.1-beta.2", "archiver": "^1.3.0", "aws-sdk": "^2.28.0", "bluebird-lst": "^1.0.2", @@ -40,7 +40,7 @@ "electron-download-tf": "4.0.0", "electron-macos-sign": "~1.6.0", "fs-extra-p": "^4.1.0", - "hosted-git-info": "^2.2.0", + "hosted-git-info": "^2.3.1", "ini": "^1.3.4", "is-ci": "^1.0.10", "isbinaryfile": "^3.0.2", @@ -63,7 +63,7 @@ "yargs": "^7.0.2" }, "devDependencies": { - "@types/electron": "^1.4.33", + "@types/electron": "^1.4.34", "@types/ini": "^1.3.29", "@types/jest": "^19.2.2", "@types/js-yaml": "^3.5.29", diff --git a/packages/electron-builder-core/src/core.ts b/packages/electron-builder-core/src/core.ts index 937664a4864..73b501b1637 100644 --- a/packages/electron-builder-core/src/core.ts +++ b/packages/electron-builder-core/src/core.ts @@ -1,3 +1,5 @@ +import { Publish } from "electron-builder-http/out/publishOptions" + export enum Arch { ia32, x64, armv7l } @@ -99,6 +101,7 @@ export class Platform { export abstract class Target { abstract readonly outDir: string + abstract readonly options: TargetSpecificOptions | null | undefined constructor(readonly name: string, readonly isAsyncSupported: boolean = true) { } @@ -117,6 +120,24 @@ export interface TargetSpecificOptions { readonly artifactName?: string | null readonly forceCodeSigning?: boolean + + readonly publish?: Publish +} + +export interface PlatformSpecificBuildOptions extends TargetSpecificOptions { + readonly files?: Array | string | null + readonly extraFiles?: Array | FilePattern | string | null + readonly extraResources?: Array | FilePattern | string | null + + readonly asarUnpack?: Array | string | null + + readonly asar?: AsarOptions | boolean | null + + readonly target?: Array | string | TargetConfig | null + + readonly icon?: string | null + + readonly fileAssociations?: Array | FileAssociation } export const DEFAULT_TARGET = "default" diff --git a/packages/electron-builder-core/tsconfig.json b/packages/electron-builder-core/tsconfig.json index 493d4496fc0..d4821d60b3a 100755 --- a/packages/electron-builder-core/tsconfig.json +++ b/packages/electron-builder-core/tsconfig.json @@ -7,5 +7,8 @@ "declaration": true, "include": [ "src/**/*.ts" + ], + "files": [ + "../electron-builder-http/out/electron-builder-http.d.ts" ] } \ No newline at end of file diff --git a/packages/electron-builder-squirrel-windows/src/squirrelWindows.ts b/packages/electron-builder-squirrel-windows/src/squirrelWindows.ts index 5dbb8ec8bdd..2bef40c554c 100644 --- a/packages/electron-builder-squirrel-windows/src/squirrelWindows.ts +++ b/packages/electron-builder-squirrel-windows/src/squirrelWindows.ts @@ -11,7 +11,7 @@ const SW_VERSION = "1.5.2.0" const SW_SHA2 = "e96a109d4641ebb85d163eaefe7770b165ebc25d1cc77c5179f021b232fc3730" export default class SquirrelWindowsTarget extends Target { - private readonly options: SquirrelWindowsOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, this.packager.config.squirrelWindows) + readonly options: SquirrelWindowsOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, this.packager.config.squirrelWindows) constructor(private readonly packager: WinPackager, readonly outDir: string) { super("squirrel") diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index a7c011e4f62..3e75a550f00 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -46,7 +46,7 @@ "dependencies": { "7zip-bin": "^2.0.4", "ajv": "^5.0.4-beta.0", - "ajv-keywords": "^2.0.1-beta.1", + "ajv-keywords": "^2.0.1-beta.2", "bluebird-lst": "^1.0.2", "chalk": "^1.1.3", "chromium-pickle-js": "^0.2.0", @@ -58,7 +58,7 @@ "electron-macos-sign": "~1.6.0", "electron-publish": "0.0.0-semantic-release", "fs-extra-p": "^4.1.0", - "hosted-git-info": "^2.2.0", + "hosted-git-info": "^2.3.1", "is-ci": "^1.0.10", "isbinaryfile": "^3.0.2", "js-yaml": "^3.8.2", diff --git a/packages/electron-builder/src/index.ts b/packages/electron-builder/src/index.ts index f26d7a8f856..a77aa152585 100644 --- a/packages/electron-builder/src/index.ts +++ b/packages/electron-builder/src/index.ts @@ -2,7 +2,7 @@ export { Packager, BuildResult } from "./packager" export { PackagerOptions, ArtifactCreated, BuildInfo } from "./packagerApi" export { getArchSuffix, Platform, Arch, archFromString, Target, DIR_TARGET } from "electron-builder-core" export { BuildOptions, build, CliOptions, createTargets } from "./builder" -export { Metadata, Config, AfterPackContext, PlatformSpecificBuildOptions } from "./metadata" +export { Metadata, Config, AfterPackContext } from "./metadata" export { MacOptions, DmgOptions, MasBuildOptions, MacOsTargetName, PkgOptions, DmgContent, DmgWindow } from "./options/macOptions" export { WinBuildOptions, NsisOptions, SquirrelWindowsOptions, AppXOptions, NsisWebOptions } from "./options/winOptions" export { LinuxBuildOptions, DebOptions, SnapOptions } from "./options/linuxOptions" \ No newline at end of file diff --git a/packages/electron-builder/src/metadata.ts b/packages/electron-builder/src/metadata.ts index 1319a92ddd4..caa84f1e522 100755 --- a/packages/electron-builder/src/metadata.ts +++ b/packages/electron-builder/src/metadata.ts @@ -1,4 +1,4 @@ -import { Arch, AsarOptions, AuthorMetadata, BeforeBuildContext, CompressionLevel, FileAssociation, FilePattern, MetadataDirectories, Protocol, RepositoryInfo, Target, TargetConfig, TargetSpecificOptions } from "electron-builder-core" +import { Arch, AsarOptions, AuthorMetadata, BeforeBuildContext, CompressionLevel, FileAssociation, FilePattern, MetadataDirectories, PlatformSpecificBuildOptions, Protocol, RepositoryInfo, Target } from "electron-builder-core" import { Publish } from "electron-builder-http/out/publishOptions" import { DebOptions, LinuxBuildOptions, SnapOptions } from "./options/linuxOptions" import { DmgOptions, MacOptions, MasBuildOptions, PkgOptions } from "./options/macOptions" @@ -51,7 +51,7 @@ export interface Metadata { /** * Configuration Options */ -export interface Config extends PlatformSpecificBuildOptions, TargetSpecificOptions { +export interface Config extends PlatformSpecificBuildOptions { /** * The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as * [Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). @@ -231,22 +231,4 @@ export interface AfterPackContext { readonly electronPlatformName: string readonly arch: Arch readonly targets: Array -} - -export interface PlatformSpecificBuildOptions extends TargetSpecificOptions { - readonly files?: Array | string | null - readonly extraFiles?: Array | FilePattern | string | null - readonly extraResources?: Array | FilePattern | string | null - - readonly asarUnpack?: Array | string | null - - readonly asar?: AsarOptions | boolean | null - - readonly target?: Array | string | TargetConfig | null - - readonly icon?: string | null - - readonly fileAssociations?: Array | FileAssociation - - readonly publish?: Publish } \ No newline at end of file diff --git a/packages/electron-builder/src/options/linuxOptions.ts b/packages/electron-builder/src/options/linuxOptions.ts index 228a4bb6f73..14cd2e72fe5 100644 --- a/packages/electron-builder/src/options/linuxOptions.ts +++ b/packages/electron-builder/src/options/linuxOptions.ts @@ -1,5 +1,4 @@ -import { TargetConfigType } from "electron-builder-core" -import { PlatformSpecificBuildOptions } from "../metadata" +import { PlatformSpecificBuildOptions, TargetConfigType } from "electron-builder-core" /** * Linux Options diff --git a/packages/electron-builder/src/options/macOptions.ts b/packages/electron-builder/src/options/macOptions.ts index 1523f71f2e9..3c1adba2958 100644 --- a/packages/electron-builder/src/options/macOptions.ts +++ b/packages/electron-builder/src/options/macOptions.ts @@ -1,5 +1,4 @@ -import { TargetConfig, TargetSpecificOptions } from "electron-builder-core" -import { PlatformSpecificBuildOptions } from "../metadata" +import { PlatformSpecificBuildOptions, TargetConfig, TargetSpecificOptions } from "electron-builder-core" export type MacOsTargetName = "default" | "dmg" | "mas" | "pkg" | "7z" | "zip" | "tar.xz" | "tar.lz" | "tar.gz" | "tar.bz2" | "dir" diff --git a/packages/electron-builder/src/options/winOptions.ts b/packages/electron-builder/src/options/winOptions.ts index ff14cd60c1d..9100adb908b 100644 --- a/packages/electron-builder/src/options/winOptions.ts +++ b/packages/electron-builder/src/options/winOptions.ts @@ -1,5 +1,4 @@ -import { TargetConfigType } from "electron-builder-core" -import { PlatformSpecificBuildOptions } from "../metadata" +import { PlatformSpecificBuildOptions, TargetConfigType } from "electron-builder-core" /** * Windows Specific Options diff --git a/packages/electron-builder/src/packager.ts b/packages/electron-builder/src/packager.ts index 0fb41eb5603..009b0c6af21 100644 --- a/packages/electron-builder/src/packager.ts +++ b/packages/electron-builder/src/packager.ts @@ -154,6 +154,13 @@ export class Packager implements BuildInfo { } this.checkMetadata(appPackageFile, devPackageFile) + + debug(`Effective config: ${JSON.stringify(this.config, (name, value) => { + if (name.endsWith("Password") || name.endsWith("Token") || name.includes("password") || name.includes("token")) { + return "" + } + return value + }, 2)}`) checkConflictingOptions(this.config) this.electronVersion = await getElectronVersion(this.config, projectDir, this.isPrepackedAppAsar ? this.metadata : null) diff --git a/packages/electron-builder/src/platformPackager.ts b/packages/electron-builder/src/platformPackager.ts index 527139ee563..396a861e1af 100644 --- a/packages/electron-builder/src/platformPackager.ts +++ b/packages/electron-builder/src/platformPackager.ts @@ -1,5 +1,5 @@ import BluebirdPromise from "bluebird-lst" -import { Arch, AsarOptions, FileAssociation, FilePattern, getArchSuffix, Platform, Target, TargetSpecificOptions } from "electron-builder-core" +import { Arch, AsarOptions, FileAssociation, FilePattern, getArchSuffix, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "electron-builder-core" import { asArray, debug, isEmptyOrSpaces, Lazy, use } from "electron-builder-util" import { deepAssign } from "electron-builder-util/out/deepAssign" import { copyDir, statOrNull, unlinkIfExists } from "electron-builder-util/out/fs" @@ -10,7 +10,7 @@ import * as path from "path" import { AppInfo } from "./appInfo" import { checkFileInArchive, createAsarArchive } from "./asarUtil" import { copyFiles, FileMatcher } from "./fileMatcher" -import { Config, PlatformSpecificBuildOptions } from "./metadata" +import { Config } from "./metadata" import { unpackElectron } from "./packager/dirPackager" import { BuildInfo, PackagerOptions } from "./packagerApi" import { readInstalled } from "./readInstalled" diff --git a/packages/electron-builder/src/publish/PublishManager.ts b/packages/electron-builder/src/publish/PublishManager.ts index ffcee4462df..02b69381451 100644 --- a/packages/electron-builder/src/publish/PublishManager.ts +++ b/packages/electron-builder/src/publish/PublishManager.ts @@ -1,10 +1,10 @@ import BluebirdPromise from "bluebird-lst" import { createHash } from "crypto" -import { Platform, Target } from "electron-builder-core" +import { Platform, PlatformSpecificBuildOptions, Target } from "electron-builder-core" import { CancellationToken } from "electron-builder-http/out/CancellationToken" -import { GenericServerOptions, GithubOptions, githubUrl, PublishConfiguration, PublishProvider, S3Options, s3Url, UpdateInfo, VersionInfo } from "electron-builder-http/out/publishOptions" +import { BintrayOptions, GenericServerOptions, GithubOptions, githubUrl, PublishConfiguration, PublishProvider, S3Options, s3Url, UpdateInfo, VersionInfo } from "electron-builder-http/out/publishOptions" import { asArray, debug, isEmptyOrSpaces, isPullRequest } from "electron-builder-util" -import { log } from "electron-builder-util/out/log" +import { log, warn } from "electron-builder-util/out/log" import { throwError } from "electron-builder-util/out/promise" import { HttpPublisher, PublishContext, Publisher, PublishOptions } from "electron-publish" import { BintrayPublisher } from "electron-publish/out/BintrayPublisher" @@ -15,12 +15,10 @@ import isCi from "is-ci" import { safeDump } from "js-yaml" import * as path from "path" import * as url from "url" -import { PlatformSpecificBuildOptions } from "../metadata" import { Packager } from "../packager" import { ArtifactCreated, BuildInfo } from "../packagerApi" import { PlatformPackager } from "../platformPackager" import { WinPackager } from "../winPackager" -import { getCiTag, getResolvedPublishConfig } from "./publisher" export class PublishManager implements PublishContext { private readonly nameToPublisher = new Map() @@ -103,7 +101,7 @@ export class PublishManager implements PublishContext { private async artifactCreated(event: ArtifactCreated) { const packager = event.packager const target = event.target - const publishConfigs = event.publishConfig == null ? await getPublishConfigs(packager, target == null ? null : (packager.config)[target.name]) : [event.publishConfig] + const publishConfigs = event.publishConfig == null ? await getPublishConfigs(packager, target == null ? null : target.options) : [event.publishConfig] const eventFile = event.file if (publishConfigs == null) { @@ -438,4 +436,80 @@ function sha256(file: string) { function isSuitableWindowsTarget(target: Target) { return target.name === "nsis" || target.name.startsWith("nsis-") +} + +function getCiTag() { + const tag = process.env.TRAVIS_TAG || process.env.APPVEYOR_REPO_TAG_NAME || process.env.CIRCLE_TAG || process.env.CI_BUILD_TAG + return tag != null && tag.length > 0 ? tag : null +} + +async function getResolvedPublishConfig(packager: BuildInfo, options: PublishConfiguration, errorIfCannot: boolean = true): Promise { + const provider = options.provider + if (provider === "generic") { + if ((options).url == null) { + throw new Error(`Please specify "url" for "generic" update server`) + } + return options + } + + const providerClass = requireProviderClass(options.provider) + if (providerClass != null && providerClass.checkPublishConfig != null) { + providerClass.checkPublishConfig(options) + return options + } + + const isGithub = provider === "github" + if (!isGithub && provider !== "bintray") { + return options + } + + let owner = options.owner + let project = isGithub ? (options).repo : (options).package + + if (isGithub && owner == null && project != null) { + const index = project.indexOf("/") + if (index > 0) { + const repo = project + project = repo.substring(0, index) + owner = repo.substring(index + 1) + } + } + + async function getInfo() { + const info = await packager.repositoryInfo + if (info != null) { + return info + } + + const message = `Cannot detect repository by .git/config. Please specify "repository" in the package.json (https://docs.npmjs.com/files/package.json#repository).\nPlease see /~https://github.com/electron-userland/electron-builder/wiki/Publishing-Artifacts` + if (errorIfCannot) { + throw new Error(message) + } + else { + warn(message) + return null + } + } + + if (!owner || !project) { + debug(`No owner or project for ${provider}, call getInfo: owner: ${owner}, project: ${project}`) + const info = await getInfo() + if (info == null) { + return null + } + + if (!owner) { + owner = info.user + } + if (!project) { + project = info.project + } + } + + if (isGithub) { + return Object.assign({owner, repo: project}, options) + } + else { + return Object.assign({owner, package: project}, options) + } } \ No newline at end of file diff --git a/packages/electron-builder/src/publish/publisher.ts b/packages/electron-builder/src/publish/publisher.ts deleted file mode 100644 index 70b0a067107..00000000000 --- a/packages/electron-builder/src/publish/publisher.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { BintrayOptions, GenericServerOptions, GithubOptions, PublishConfiguration, S3Options } from "electron-builder-http/out/publishOptions" -import { debug } from "electron-builder-util" -import { warn } from "electron-builder-util/out/log" -import { BuildInfo } from "../packagerApi" - -export async function getResolvedPublishConfig(packager: BuildInfo, publishConfig: PublishConfiguration, errorIfCannot: boolean = true): Promise { - const provider = publishConfig.provider - if (provider === "generic") { - if ((publishConfig).url == null) { - throw new Error(`Please specify "url" for "generic" update server`) - } - return publishConfig - } - - if (provider === "s3") { - if ((publishConfig).bucket == null) { - throw new Error(`Please specify "bucket" for "s3" update server`) - } - return publishConfig - } - - async function getInfo() { - const info = await packager.repositoryInfo - if (info != null) { - return info - } - - const message = `Cannot detect repository by .git/config. Please specify "repository" in the package.json (https://docs.npmjs.com/files/package.json#repository).\nPlease see /~https://github.com/electron-userland/electron-builder/wiki/Publishing-Artifacts` - if (errorIfCannot) { - throw new Error(message) - } - else { - warn(message) - return null - } - } - - let owner = publishConfig.owner - let project = provider === "github" ? (publishConfig).repo : (publishConfig).package - - if (provider === "github" && owner == null && project != null) { - const index = project.indexOf("/") - if (index > 0) { - const repo = project - project = repo.substring(0, index) - owner = repo.substring(index + 1) - } - } - - if (!owner || !project) { - debug(`no owner or project for ${provider}, call getInfo: owner: ${owner}, project: ${project}`) - const info = await getInfo() - if (info == null) { - return null - } - - if (!owner) { - owner = info.user - } - if (!project) { - project = info.project - } - } - - if (provider === "github") { - return Object.assign({owner, repo: project}, publishConfig) - } - else if (provider === "bintray") { - return Object.assign({owner, package: project}, publishConfig) - } - else { - throw new Error(`Unknown publish provider: ${provider}`) - } -} - -export function getCiTag() { - const tag = process.env.TRAVIS_TAG || process.env.APPVEYOR_REPO_TAG_NAME || process.env.CIRCLE_TAG || process.env.CI_BUILD_TAG - return tag != null && tag.length > 0 ? tag : null -} \ No newline at end of file diff --git a/packages/electron-builder/src/targets/ArchiveTarget.ts b/packages/electron-builder/src/targets/ArchiveTarget.ts index 54864c57e51..05b4cb876e7 100644 --- a/packages/electron-builder/src/targets/ArchiveTarget.ts +++ b/packages/electron-builder/src/targets/ArchiveTarget.ts @@ -5,6 +5,8 @@ import { PlatformPackager } from "../platformPackager" import { archive, tar } from "./archive" export class ArchiveTarget extends Target { + readonly options = (this.packager.config)[this.name] + constructor(name: string, readonly outDir: string, private readonly packager: PlatformPackager) { super(name) } diff --git a/packages/electron-builder/src/targets/appImage.ts b/packages/electron-builder/src/targets/appImage.ts index a233f35a5f8..f2c23eabd2c 100644 --- a/packages/electron-builder/src/targets/appImage.ts +++ b/packages/electron-builder/src/targets/appImage.ts @@ -18,7 +18,7 @@ const appImageSha256 = process.platform === "darwin" ? "5d4a954876654403698a01ef const appImagePathPromise = getBin("AppImage", appImageVersion, `https://dl.bintray.com/electron-userland/bin/${appImageVersion}.7z`, appImageSha256) export default class AppImageTarget extends Target { - private readonly options: LinuxBuildOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) + readonly options: LinuxBuildOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) private readonly desktopEntry: Promise constructor(ignored: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) { diff --git a/packages/electron-builder/src/targets/appx.ts b/packages/electron-builder/src/targets/appx.ts index e762cdc160c..138dec90723 100644 --- a/packages/electron-builder/src/targets/appx.ts +++ b/packages/electron-builder/src/targets/appx.ts @@ -11,7 +11,7 @@ import { getSignVendorPath } from "../windowsCodeSign" import { WinPackager } from "../winPackager" export default class AppXTarget extends Target { - private readonly options: AppXOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) + readonly options: AppXOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) constructor(private readonly packager: WinPackager, readonly outDir: string) { super("appx") diff --git a/packages/electron-builder/src/targets/dmg.ts b/packages/electron-builder/src/targets/dmg.ts index 98359740d9a..d73dedc0248 100644 --- a/packages/electron-builder/src/targets/dmg.ts +++ b/packages/electron-builder/src/targets/dmg.ts @@ -12,6 +12,8 @@ import { DmgOptions, MacOptions } from "../options/macOptions" import { PlatformPackager } from "../platformPackager" export class DmgTarget extends Target { + readonly options = this.packager.config.dmg + private helperDir = path.join(__dirname, "..", "..", "templates", "dmg") constructor(private readonly packager: PlatformPackager, readonly outDir: string) { @@ -186,13 +188,12 @@ export class DmgTarget extends Target { // public to test async computeDmgOptions(): Promise { - const packager = this.packager const specification: any = deepAssign({ window: { x: 400, y: 100, }, - }, packager.config.dmg) + }, this.options) // appdmg const oldPosition = specification.window.position @@ -214,6 +215,7 @@ export class DmgTarget extends Target { warn("dmg.icon-size is deprecated, please use dmg.iconSize instead") } + const packager = this.packager if (!("icon" in specification)) { use(await packager.getIconPath(), it => { specification.icon = it diff --git a/packages/electron-builder/src/targets/fpm.ts b/packages/electron-builder/src/targets/fpm.ts index 8ca4270fe0b..9d3ec2402c3 100644 --- a/packages/electron-builder/src/targets/fpm.ts +++ b/packages/electron-builder/src/targets/fpm.ts @@ -28,7 +28,7 @@ function downloadFpm(): Promise { } export default class FpmTarget extends Target { - private readonly options = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) + readonly options = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) private readonly scriptFiles: Promise> diff --git a/packages/electron-builder/src/targets/nsis.ts b/packages/electron-builder/src/targets/nsis.ts index 8a009050899..f31d8040779 100644 --- a/packages/electron-builder/src/targets/nsis.ts +++ b/packages/electron-builder/src/targets/nsis.ts @@ -22,7 +22,7 @@ const nsisResourcePathPromise = getBinFromBintray("nsis-resources", "3.0.0", "cd const USE_NSIS_BUILT_IN_COMPRESSOR = false export default class NsisTarget extends Target { - protected readonly options: NsisOptions + readonly options: NsisOptions private archs: Map = new Map() @@ -42,6 +42,8 @@ export default class NsisTarget extends Target { warn('"electron-squirrel-startup" dependency is not required for NSIS') } } + + async build(appOutDir: string, arch: Arch) { this.archs.set(arch, appOutDir) diff --git a/packages/electron-builder/src/targets/pkg.ts b/packages/electron-builder/src/targets/pkg.ts index 0d1bef0cbff..5bfbdc81822 100644 --- a/packages/electron-builder/src/targets/pkg.ts +++ b/packages/electron-builder/src/targets/pkg.ts @@ -11,7 +11,7 @@ import { filterCFBundleIdentifier } from "../packager/mac" // http://www.shanekirk.com/2013/10/creating-flat-packages-in-osx/ export class PkgTarget extends Target { - private readonly options: PkgOptions = this.packager.config.pkg || Object.create(null) + readonly options: PkgOptions = this.packager.config.pkg || Object.create(null) private readonly installLocation = this.options.installLocation || "/Applications" constructor(private readonly packager: MacPackager, readonly outDir: string) { diff --git a/packages/electron-builder/src/targets/snap.ts b/packages/electron-builder/src/targets/snap.ts index 51d4105451a..0c24ffd1817 100644 --- a/packages/electron-builder/src/targets/snap.ts +++ b/packages/electron-builder/src/targets/snap.ts @@ -10,7 +10,7 @@ import { SnapOptions } from "../options/linuxOptions" import { LinuxTargetHelper } from "./LinuxTargetHelper" export default class SnapTarget extends Target { - private readonly options: SnapOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) + readonly options: SnapOptions = Object.assign({}, this.packager.platformSpecificBuildOptions, (this.packager.config)[this.name]) constructor(name: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) { super(name) diff --git a/packages/electron-builder/src/targets/targetFactory.ts b/packages/electron-builder/src/targets/targetFactory.ts index c3a7c2684eb..d3f3432148b 100644 --- a/packages/electron-builder/src/targets/targetFactory.ts +++ b/packages/electron-builder/src/targets/targetFactory.ts @@ -1,6 +1,5 @@ -import { Arch, archFromString, DEFAULT_TARGET, DIR_TARGET, Platform, Target, TargetConfig } from "electron-builder-core" +import { Arch, archFromString, DEFAULT_TARGET, DIR_TARGET, Platform, PlatformSpecificBuildOptions, Target, TargetConfig } from "electron-builder-core" import { addValue, asArray } from "electron-builder-util" -import { PlatformSpecificBuildOptions } from "../metadata" import { PlatformPackager } from "../platformPackager" import { ArchiveTarget } from "./ArchiveTarget" @@ -85,6 +84,8 @@ export function createCommonTarget(target: string, outDir: string, packager: Pla } export class NoOpTarget extends Target { + readonly options = null + get outDir(): string { throw new Error("NoOpTarget") } diff --git a/packages/electron-publisher-s3/src/s3Publisher.ts b/packages/electron-publisher-s3/src/s3Publisher.ts index a78f8a544d5..a2c6a8ef86a 100644 --- a/packages/electron-publisher-s3/src/s3Publisher.ts +++ b/packages/electron-publisher-s3/src/s3Publisher.ts @@ -33,6 +33,12 @@ export default class S3Publisher extends Publisher { } return options } + + static checkPublishConfig(options: S3Options) { + if (options.bucket == null) { + throw new Error(`Please specify "bucket" for "s3" update server`) + } + } // http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-creating-buckets.html async upload(file: string, safeArtifactName?: string): Promise { diff --git a/test/fixtures/app-executable-deps/package.json b/test/fixtures/app-executable-deps/package.json index 51786082d61..e3f53bb5387 100644 --- a/test/fixtures/app-executable-deps/package.json +++ b/test/fixtures/app-executable-deps/package.json @@ -1,6 +1,6 @@ { "build": { - "electronVersion": "1.6.0", + "electronVersion": "1.6.3", "category": "public.app-category.business" } } diff --git a/test/fixtures/test-app-one/package.json b/test/fixtures/test-app-one/package.json index f0c6b137ca1..fff2adc5867 100755 --- a/test/fixtures/test-app-one/package.json +++ b/test/fixtures/test-app-one/package.json @@ -8,7 +8,7 @@ "author": "Foo Bar ", "license": "MIT", "build": { - "electronVersion": "1.6.0", + "electronVersion": "1.6.3", "appId": "org.electron-builder.testApp", "iconUrl": "https://raw.githubusercontent.com/szwacz/electron-boilerplate/master/resources/windows/icon.ico", "compression": "store", diff --git a/test/fixtures/test-app/package.json b/test/fixtures/test-app/package.json index 7fc85761786..854368ce136 100755 --- a/test/fixtures/test-app/package.json +++ b/test/fixtures/test-app/package.json @@ -1,7 +1,7 @@ { "private": true, "build": { - "electronVersion": "1.6.0", + "electronVersion": "1.6.3", "appId": "org.electron-builder.testApp", "iconUrl": "https://raw.githubusercontent.com/szwacz/electron-boilerplate/master/resources/windows/icon.ico", "compression": "store", diff --git a/test/out/__snapshots__/RepoSlugTest.js.snap b/test/out/__snapshots__/RepoSlugTest.js.snap index 4e732588ab0..cab53e26adf 100644 --- a/test/out/__snapshots__/RepoSlugTest.js.snap +++ b/test/out/__snapshots__/RepoSlugTest.js.snap @@ -14,13 +14,8 @@ Object { "bugstemplate": "https://{domain}/{user}/{project}/issues", "committish": null, "default": "shortcut", - "docstemplate": "https://{domain}/{user}/{project}{/tree/committish}#readme", "domain": "github.com", - "filetemplate": "https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}", "gittemplate": "git://{auth@}{domain}/{user}/{project}.git{#committish}", - "httpstemplate": "git+https://{auth@}{domain}/{user}/{project}.git{#committish}", - "pathmatch": /\\^\\[\\\\/\\]\\(\\[\\^\\\\/\\]\\+\\)\\[\\\\/\\]\\(\\[\\^\\\\/\\]\\+\\?\\)\\(\\?:\\[\\.\\]git\\)\\?\\$/, - "pathtemplate": "{user}/{project}{#committish}", "project": "travis-build", "protocols": Array [ "git", diff --git a/test/out/mac/__snapshots__/macArchiveTest.js.snap b/test/out/mac/__snapshots__/macArchiveTest.js.snap index 51867f2a73b..db7ffb1ecd6 100644 --- a/test/out/mac/__snapshots__/macArchiveTest.js.snap +++ b/test/out/mac/__snapshots__/macArchiveTest.js.snap @@ -540,7 +540,7 @@ Object { Object { "_": "#org.electron-builder.testApp.pkg", "id": "org.electron-builder.testApp", - "installKBytes": "109704", + "installKBytes": "109832", "onConclusion": "none", "version": "1.1.0", }, diff --git a/test/src/RepoSlugTest.ts b/test/src/RepoSlugTest.ts index aea68924279..abf6ed2c885 100644 --- a/test/src/RepoSlugTest.ts +++ b/test/src/RepoSlugTest.ts @@ -1,11 +1,20 @@ import { getRepositoryInfo } from "electron-builder/out/repositoryInfo" +function checkInfo(info: any) { + delete info.pathmatch + delete info.pathtemplate + delete info.httpstemplate + delete info.filetemplate + delete info.docstemplate + expect(info).toMatchSnapshot() +} + test("repo slug from TRAVIS_REPO_SLUG", async () => { const oldValue = process.env.TRAVIS_REPO_SLUG try { process.env.TRAVIS_REPO_SLUG = "travis-ci/travis-build" - const info = await getRepositoryInfo(process.cwd()) - expect(info).toMatchSnapshot() + const info: any = await getRepositoryInfo(process.cwd()) + checkInfo(info) } finally { if (oldValue != null) { @@ -26,7 +35,7 @@ test("repo slug from APPVEYOR", async () => { process.env.APPVEYOR_ACCOUNT_NAME = "travis-ci" process.env.APPVEYOR_PROJECT_NAME = "travis-build" const info = await getRepositoryInfo(process.cwd()) - expect(info).toMatchSnapshot() + checkInfo(info) } finally { restoreEnv("APPVEYOR_ACCOUNT_NAME", oldAppveyorAccountName) diff --git a/test/src/helpers/config.ts b/test/src/helpers/config.ts index 5907b216a79..7b645ff7ea1 100644 --- a/test/src/helpers/config.ts +++ b/test/src/helpers/config.ts @@ -11,4 +11,4 @@ docker: Error response from daemon: Mounts denied: o Docker. */ const baseDir = process.env.ELECTRON_BUILDER_TEST_DIR || (process.platform === "darwin" && !require("is-ci") ? "/tmp" : tmpdir()) export const TEST_DIR = path.join(baseDir, `et-${createHash("md5").update(__dirname).digest("hex")}`) -export const ELECTRON_VERSION = "1.6.0" \ No newline at end of file +export const ELECTRON_VERSION = "1.6.3" \ No newline at end of file diff --git a/test/src/mac/macArchiveTest.ts b/test/src/mac/macArchiveTest.ts index 5d13c6b446d..bc70a5f0797 100644 --- a/test/src/mac/macArchiveTest.ts +++ b/test/src/mac/macArchiveTest.ts @@ -40,7 +40,7 @@ test.ifMac("pkg scripts", app({ }) delete info["pkg-ref"][0]["bundle-version"].bundle.CFBundleVersion delete info.product.version - + delete info.installKBytes expect(info).toMatchSnapshot() const scriptDir = path.join(unpackedDir, "org.electron-builder.testApp.pkg", "Scripts") diff --git a/yarn.lock b/yarn.lock index d902ee3acb7..02a6215759d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,9 +22,9 @@ "7zip-bin-mac" "^1.0.1" "7zip-bin-win" "^2.0.2" -"@types/electron@^1.4.33": - version "1.4.33" - resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.4.33.tgz#10b82bb065115e19a5ef0848e142cf5949435979" +"@types/electron@^1.4.34": + version "1.4.34" + resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.4.34.tgz#f9ff3d4b54c0abc80710f40f935c59b253da23ad" dependencies: "@types/node" "*" @@ -86,9 +86,9 @@ acorn@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" -ajv-keywords@^2.0.1-beta.1: - version "2.0.1-beta.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.0.1-beta.1.tgz#f724f5495a1c71b09d1772560df8a4c5a4d018a5" +ajv-keywords@^2.0.1-beta.2: + version "2.0.1-beta.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.0.1-beta.2.tgz#b48f36d63e9334c5045bafde090db006328a0972" ajv@^4.9.1: version "4.11.5" @@ -834,8 +834,8 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" config-master@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/config-master/-/config-master-3.0.0.tgz#25319ddd83cec8010c4095ca7317b17ee4cfea6a" + version "3.1.0" + resolved "https://registry.yarnpkg.com/config-master/-/config-master-3.1.0.tgz#667663590505a283bf26a484d68489d74c5485da" dependencies: walk-back "^2.0.1" @@ -1455,9 +1455,9 @@ home-path@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.3.tgz#9ece59fec3f032e6d10b5434fee264df4c2de32f" -hosted-git-info@^2.1.4, hosted-git-info@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" +hosted-git-info@^2.1.4, hosted-git-info@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.3.1.tgz#ac439421605f0beb0ea1349de7d8bb28e50be1dd" html-encoding-sniffer@^1.0.1: version "1.0.1" @@ -2279,7 +2279,7 @@ mime@^1.3.4: dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2287,6 +2287,10 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -3215,8 +3219,8 @@ tslint@^4.5.1: update-notifier "^2.0.0" tsutils@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.3.0.tgz#dd86cb304f7a2e86c012deade2f8d0f886f57808" + version "1.4.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.4.0.tgz#84f8a83df9967d35bf1ff3aa48c7339593d64e19" tunnel-agent@^0.6.0: version "0.6.0"