Skip to content

Commit

Permalink
fix build
Browse files Browse the repository at this point in the history
  • Loading branch information
mmaietta committed Apr 3, 2024
1 parent 6dc4ebc commit f1a5e6f
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 38 deletions.
61 changes: 29 additions & 32 deletions packages/app-builder-lib/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,42 +76,39 @@ export function build(options: PackagerOptions & PublishOptions, packager: Packa
}
process.once("SIGINT", sigIntHandler)

const promise = packager
.validateConfig()
.then(() => packager.build())
.then(async buildResult => {
const afterAllArtifactBuild = await resolveFunction(packager.appInfo.type, buildResult.configuration.afterAllArtifactBuild, "afterAllArtifactBuild")
if (afterAllArtifactBuild != null) {
const newArtifacts = asArray(await Promise.resolve(afterAllArtifactBuild(buildResult)))
if (newArtifacts.length === 0 || !publishManager.isPublish) {
return buildResult.artifactPaths
}
const promise = packager.build().then(async buildResult => {
const afterAllArtifactBuild = await resolveFunction(packager.appInfo.type, buildResult.configuration.afterAllArtifactBuild, "afterAllArtifactBuild")
if (afterAllArtifactBuild != null) {
const newArtifacts = asArray(await Promise.resolve(afterAllArtifactBuild(buildResult)))
if (newArtifacts.length === 0 || !publishManager.isPublish) {
return buildResult.artifactPaths
}

const publishConfigurations = await publishManager.getGlobalPublishConfigurations()
if (publishConfigurations == null || publishConfigurations.length === 0) {
return buildResult.artifactPaths
}
const publishConfigurations = await publishManager.getGlobalPublishConfigurations()
if (publishConfigurations == null || publishConfigurations.length === 0) {
return buildResult.artifactPaths
}

for (const newArtifact of newArtifacts) {
if (buildResult.artifactPaths.includes(newArtifact)) {
log.warn({ newArtifact }, "skipping publish of artifact, already published")
continue
}
buildResult.artifactPaths.push(newArtifact)
for (const publishConfiguration of publishConfigurations) {
publishManager.scheduleUpload(
publishConfiguration,
{
file: newArtifact,
arch: null,
},
packager.appInfo
)
}
for (const newArtifact of newArtifacts) {
if (buildResult.artifactPaths.includes(newArtifact)) {
log.warn({ newArtifact }, "skipping publish of artifact, already published")
continue
}
buildResult.artifactPaths.push(newArtifact)
for (const publishConfiguration of publishConfigurations) {
publishManager.scheduleUpload(
publishConfiguration,
{
file: newArtifact,
arch: null,
},
packager.appInfo
)
}
}
return buildResult.artifactPaths
})
}
return buildResult.artifactPaths
})

return executeFinally(promise, isErrorOccurred => {
let promise: Promise<any>
Expand Down
6 changes: 4 additions & 2 deletions packages/app-builder-lib/src/packager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packag
import { PlatformPackager, resolveFunction } from "./platformPackager"
import { ProtonFramework } from "./ProtonFramework"
import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory"
import { computeDefaultAppDirectory, getConfig, validateConfig } from "./util/config"
import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config"
import { expandMacro } from "./util/macroExpander"
import { createLazyProductionDeps, NodeModuleDirInfo } from "./util/packageDependencies"
import { checkMetadata, readPackageJson } from "./util/packageMetadata"
Expand Down Expand Up @@ -337,14 +337,16 @@ export class Packager {
}
checkMetadata(this.metadata, this.devMetadata, appPackageFile, devPackageFile)

await validateConfig(configuration, this.debugLogger)
await validateConfiguration(configuration, this.debugLogger)

this._configuration = configuration
this._devMetadata = devMetadata
}

// external caller of this method always uses isTwoPackageJsonProjectLayoutUsed=false and appDir=projectDir, no way (and need) to use another values
async build(repositoryInfo?: SourceRepositoryInfo): Promise<BuildResult> {
await this.validateConfig()

if (repositoryInfo != null) {
this._repositoryInfo.value = Promise.resolve(repositoryInfo)
}
Expand Down
2 changes: 1 addition & 1 deletion packages/app-builder-lib/src/util/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ function getDefaultConfig(): Configuration {

const schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, "..", "..", "scheme.json")))

export async function validateConfig(config: Configuration, debugLogger: DebugLogger) {
export async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) {
const extraMetadata = config.extraMetadata
if (extraMetadata != null) {
if (extraMetadata.build != null) {
Expand Down
6 changes: 3 additions & 3 deletions test/src/configurationValidationTest.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { DebugLogger } from "builder-util/out/DebugLogger"
import { Configuration, Platform } from "electron-builder"
import { validateConfig } from "app-builder-lib/out/util/config"
import { validateConfiguration } from "app-builder-lib/out/util/config"
import { createYargs, configureBuildCommand, normalizeOptions, CliOptions } from "electron-builder/out/builder"
import { app, appThrows, linuxDirTarget } from "./helpers/packTester"

Expand Down Expand Up @@ -64,7 +64,7 @@ test.ifAll.ifDevOrLinuxCi(
)

test.ifAll.ifDevOrLinuxCi("files", () => {
return validateConfig(
return validateConfiguration(
{
appId: "com.example.myapp",
files: [{ from: "dist/app", to: "app", filter: "*.js" }],
Expand All @@ -81,7 +81,7 @@ test.ifAll.ifDevOrLinuxCi("null string as null", async () => {
const yargs = configureBuildCommand(createYargs())
const options = normalizeOptions(yargs.parse(["-c.mac.identity=null", "--config.mac.hardenedRuntime=false"]) as CliOptions)
const config = options.config as Configuration
await validateConfig(config, new DebugLogger())
await validateConfiguration(config, new DebugLogger())
expect(config.mac!.identity).toBeNull()
expect(config.mac!.hardenedRuntime).toBe(false)
})

0 comments on commit f1a5e6f

Please sign in to comment.