Skip to content

Commit 77558e6

Browse files
committed
fix: ${arch} missing from app-update.yml
Close #1389
1 parent 0f0de81 commit 77558e6

28 files changed

+97
-37
lines changed

packages/electron-builder-squirrel-windows/src/squirrelWindows.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ export default class SquirrelWindowsTarget extends Target {
3636

3737
await buildInstaller(<SquirrelOptions>distOptions, installerOutDir, setupFileName, packager, appOutDir)
3838

39-
packager.dispatchArtifactCreated(path.join(installerOutDir, setupFileName), this, `${appInfo.name}-Setup-${version}${archSuffix}.exe`)
39+
packager.dispatchArtifactCreated(path.join(installerOutDir, setupFileName), this, arch, `${appInfo.name}-Setup-${version}${archSuffix}.exe`)
4040

4141
const packagePrefix = `${appInfo.name}-${convertVersion(version)}-`
42-
packager.dispatchArtifactCreated(path.join(installerOutDir, `${packagePrefix}full.nupkg`), this)
42+
packager.dispatchArtifactCreated(path.join(installerOutDir, `${packagePrefix}full.nupkg`), this, arch)
4343
if (distOptions.remoteReleases != null) {
44-
packager.dispatchArtifactCreated(path.join(installerOutDir, `${packagePrefix}delta.nupkg`), this)
44+
packager.dispatchArtifactCreated(path.join(installerOutDir, `${packagePrefix}delta.nupkg`), this, arch)
4545
}
4646

47-
packager.dispatchArtifactCreated(path.join(installerOutDir, "RELEASES"), this)
47+
packager.dispatchArtifactCreated(path.join(installerOutDir, "RELEASES"), this, arch)
4848
}
4949

5050
async computeEffectiveDistOptions(): Promise<SquirrelOptions> {

packages/electron-builder/src/macPackager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ export default class MacPackager extends PlatformPackager<MacOptions> {
214214

215215
const pkg = path.join(outDir!, this.expandArtifactNamePattern(masOptions, "pkg"))
216216
await this.doFlat(appPath, pkg, masInstallerIdentity, keychainName)
217-
this.dispatchArtifactCreated(pkg, null, `${this.appInfo.name}-${this.appInfo.version}.pkg`)
217+
this.dispatchArtifactCreated(pkg, null, Arch.x64, `${this.appInfo.name}-${this.appInfo.version}.pkg`)
218218
}
219219
}
220220

packages/electron-builder/src/packagerApi.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export interface BuildInfo {
7676
export interface ArtifactCreated {
7777
readonly packager: PlatformPackager<any>
7878
readonly target: Target | null
79+
readonly arch: Arch | null
7980

8081
readonly file?: string
8182
readonly data?: Buffer

packages/electron-builder/src/platformPackager.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,10 @@ export abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions>
8989
return this.info.prepackaged || path.join(outDir, `${this.platform.buildConfigurationKey}${getArchSuffix(arch)}${this.platform === Platform.MAC ? "" : "-unpacked"}`)
9090
}
9191

92-
dispatchArtifactCreated(file: string, target: Target | null, safeArtifactName?: string) {
92+
dispatchArtifactCreated(file: string, target: Target | null, arch: Arch | null, safeArtifactName?: string) {
9393
this.info.dispatchArtifactCreated({
94-
file: file,
95-
safeArtifactName: safeArtifactName,
94+
file, safeArtifactName, target, arch,
9695
packager: this,
97-
target: target,
9896
})
9997
}
10098

packages/electron-builder/src/publish/PublishManager.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import BluebirdPromise from "bluebird-lst"
22
import { createHash } from "crypto"
3-
import { Platform, PlatformSpecificBuildOptions, Target } from "electron-builder-core"
3+
import { Arch, Platform, PlatformSpecificBuildOptions, Target } from "electron-builder-core"
44
import { CancellationToken } from "electron-builder-http/out/CancellationToken"
55
import { BintrayOptions, GenericServerOptions, GithubOptions, githubUrl, PublishConfiguration, PublishProvider, S3Options, s3Url, UpdateInfo, VersionInfo } from "electron-builder-http/out/publishOptions"
66
import { asArray, debug, isEmptyOrSpaces, isPullRequest, safeStringifyJson } from "electron-builder-util"
@@ -73,7 +73,7 @@ export class PublishManager implements PublishContext {
7373
return
7474
}
7575

76-
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, null))
76+
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, null, event.arch), event.arch)
7777
if (publishConfigs == null || publishConfigs.length === 0) {
7878
return
7979
}
@@ -96,7 +96,7 @@ export class PublishManager implements PublishContext {
9696
private async artifactCreated(event: ArtifactCreated) {
9797
const packager = event.packager
9898
const target = event.target
99-
const publishConfigs = event.publishConfig == null ? await getPublishConfigs(packager, target == null ? null : target.options) : [event.publishConfig]
99+
const publishConfigs = event.publishConfig == null ? await getPublishConfigs(packager, target == null ? null : target.options, event.arch) : [event.publishConfig]
100100

101101
const eventFile = event.file
102102
if (publishConfigs == null) {
@@ -184,7 +184,7 @@ export class PublishManager implements PublishContext {
184184
}
185185
}
186186

187-
export async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<any>, publishConfigs: Array<PublishConfiguration> | null): Promise<Array<PublishConfiguration> | null> {
187+
export async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<any>, publishConfigs: Array<PublishConfiguration> | null, arch: Arch | null): Promise<Array<PublishConfiguration> | null> {
188188
if (publishConfigs === null) {
189189
return null
190190
}
@@ -195,7 +195,7 @@ export async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<
195195
// default publish config is github, file should be generated regardless of publish state (user can test installer locally or manage the release process manually)
196196
const repositoryInfo = await packager.info.repositoryInfo
197197
if (repositoryInfo != null && repositoryInfo.type === "github") {
198-
const resolvedPublishConfig = await getResolvedPublishConfig(packager, {provider: repositoryInfo.type}, false)
198+
const resolvedPublishConfig = await getResolvedPublishConfig(packager, {provider: repositoryInfo.type}, arch, false)
199199
if (resolvedPublishConfig != null) {
200200
return [resolvedPublishConfig]
201201
}
@@ -206,7 +206,7 @@ export async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<
206206

207207
async function writeUpdateInfo(event: ArtifactCreated, _publishConfigs: Array<PublishConfiguration>) {
208208
const packager = event.packager
209-
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs)
209+
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs, event.arch)
210210
if (publishConfigs == null || publishConfigs.length === 0) {
211211
return
212212
}
@@ -236,6 +236,7 @@ async function writeUpdateInfo(event: ArtifactCreated, _publishConfigs: Array<Pu
236236

237237
packager.info.dispatchArtifactCreated({
238238
file: updateInfoFile,
239+
arch: null,
239240
packager: packager,
240241
target: null,
241242
publishConfig: publishConfig,
@@ -273,13 +274,15 @@ async function writeWindowsUpdateInfo(event: ArtifactCreated, version: string, o
273274
packager: packager,
274275
target: null,
275276
publishConfig: githubPublishConfig,
277+
arch: null,
276278
})
277279
}
278280

279281
const genericPublishConfig = publishConfigs.find(it => it.provider === "generic" || it.provider === "s3")
280282
if (genericPublishConfig != null) {
281283
packager.info.dispatchArtifactCreated({
282284
file: updateInfoFile,
285+
arch: null,
283286
packager: packager,
284287
target: null,
285288
publishConfig: genericPublishConfig,
@@ -347,7 +350,7 @@ export function computeDownloadUrl(publishConfig: PublishConfiguration, fileName
347350
return `${baseUrl}/${encodeURI(fileName)}`
348351
}
349352

350-
export async function getPublishConfigs(packager: PlatformPackager<any>, targetSpecificOptions: PlatformSpecificBuildOptions | null | undefined): Promise<Array<PublishConfiguration> | null> {
353+
export async function getPublishConfigs(packager: PlatformPackager<any>, targetSpecificOptions: PlatformSpecificBuildOptions | null | undefined, arch: Arch | null): Promise<Array<PublishConfiguration> | null> {
351354
let publishers
352355

353356
// check build.nsis (target)
@@ -385,7 +388,7 @@ export async function getPublishConfigs(packager: PlatformPackager<any>, targetS
385388

386389
if (serviceName != null) {
387390
debug(`Detect ${serviceName} as publish provider`)
388-
return [(await getResolvedPublishConfig(packager, {provider: serviceName}))!]
391+
return [(await getResolvedPublishConfig(packager, {provider: serviceName}, arch))!]
389392
}
390393
}
391394

@@ -394,7 +397,7 @@ export async function getPublishConfigs(packager: PlatformPackager<any>, targetS
394397
}
395398

396399
debug(`Explicit publish provider: ${safeStringifyJson(publishers)}`)
397-
return await (<Promise<Array<PublishConfiguration>>>BluebirdPromise.map(asArray(publishers), it => getResolvedPublishConfig(packager, typeof it === "string" ? {provider: it} : it)))
400+
return await (<Promise<Array<PublishConfiguration>>>BluebirdPromise.map(asArray(publishers), it => getResolvedPublishConfig(packager, typeof it === "string" ? {provider: it} : it, arch)))
398401
}
399402

400403
function sha256(file: string) {
@@ -423,22 +426,21 @@ function getCiTag() {
423426
return tag != null && tag.length > 0 ? tag : null
424427
}
425428

426-
function expandPublishConfig(options: any, packager: PlatformPackager<any>): void {
429+
function expandPublishConfig(options: any, packager: PlatformPackager<any>, arch: Arch | null): void {
427430
for (const name of Object.keys(options)) {
428431
const value = options[name]
429432
if (typeof value === "string") {
430-
const expanded = packager.expandMacro(value, null)
433+
const expanded = packager.expandMacro(value, arch)
431434
if (expanded !== value) {
432435
options[name] = expanded
433436
}
434437
}
435438
}
436439
}
437-
438440

439-
async function getResolvedPublishConfig(packager: PlatformPackager<any>, options: PublishConfiguration, errorIfCannot: boolean = true): Promise<PublishConfiguration | null> {
441+
async function getResolvedPublishConfig(packager: PlatformPackager<any>, options: PublishConfiguration, arch: Arch | null, errorIfCannot: boolean = true): Promise<PublishConfiguration | null> {
440442
options = Object.assign(Object.create(null), options)
441-
expandPublishConfig(options, packager)
443+
expandPublishConfig(options, packager, arch)
442444

443445
const provider = options.provider
444446
if (provider === "generic") {

packages/electron-builder/src/targets/ArchiveTarget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ export class ArchiveTarget extends Target {
4040
await archive(packager.config.compression, format, outFile, appOutDir)
4141
}
4242

43-
packager.dispatchArtifactCreated(outFile, this, isMac ? packager.generateName2(format, "mac", true) : packager.generateName(format, arch, true, packager.platform === Platform.WINDOWS ? "win" : null))
43+
packager.dispatchArtifactCreated(outFile, this, Arch.x64, isMac ? packager.generateName2(format, "mac", true) : packager.generateName(format, arch, true, packager.platform === Platform.WINDOWS ? "win" : null))
4444
}
4545
}

packages/electron-builder/src/targets/WebInstaller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default class WebInstallerTarget extends NsisTarget {
2121

2222
let appPackageUrl = (<NsisWebOptions>options).appPackageUrl
2323
if (appPackageUrl == null) {
24-
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, this.options))
24+
const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, this.options, null), null)
2525
if (publishConfigs == null || publishConfigs.length === 0) {
2626
throw new Error("Cannot compute app package download URL")
2727
}

packages/electron-builder/src/targets/appImage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,6 @@ export default class AppImageTarget extends Target {
100100

101101
await chmod(resultFile, "0755")
102102

103-
packager.dispatchArtifactCreated(resultFile, this)
103+
packager.dispatchArtifactCreated(resultFile, this, arch)
104104
}
105105
}

packages/electron-builder/src/targets/appx.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export default class AppXTarget extends Target {
7171
await spawn(path.join(vendorPath, "windows-10", arch === Arch.ia32 ? "ia32" : "x64", "makeappx.exe"), args)
7272

7373
await packager.sign(destination)
74-
packager.dispatchArtifactCreated(destination, this, packager.generateName("appx", arch, true))
74+
packager.dispatchArtifactCreated(destination, this, arch, packager.generateName("appx", arch, true))
7575
}
7676

7777
private async writeManifest(templatePath: string, preAppx: string, safeName: string, arch: Arch, publisher: string) {

packages/electron-builder/src/targets/dmg.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export class DmgTarget extends Target {
171171
await spawn("hdiutil", addVerboseIfNeed(["convert", tempDmg, "-ov", "-format", specification.format!, "-imagekey", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || "9"}`, "-o", artifactPath]))
172172
await exec("hdiutil", addVerboseIfNeed(["internet-enable", "-no"]).concat(artifactPath))
173173

174-
this.packager.dispatchArtifactCreated(artifactPath, this, `${appInfo.name}-${appInfo.version}.dmg`)
174+
this.packager.dispatchArtifactCreated(artifactPath, this, arch, `${appInfo.name}-${appInfo.version}.dmg`)
175175
}
176176

177177
computeVolumeName(custom?: string | null): string {

0 commit comments

Comments
 (0)