Skip to content

fix: During all gradle operations "Gradle build" message is printed #3744

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions lib/definitions/project.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -436,16 +436,6 @@ interface IPlatformProjectService extends NodeJS.EventEmitter, IPlatformProjectS
* Traverse through the production dependencies and find plugins that need build/rebuild
*/
checkIfPluginsNeedBuild(projectData: IProjectData): Promise<Array<any>>;

/**
* Get gradle options the CLI generates when building project
*/
getBuildOptions(configurationFilePath?: string): Array<string>;

/**
* Get gradle options the CLI generates when building project
*/
executeCommand(projectRoot: string, args: any, childProcessOpts?: any, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult>;
}

interface ITestExecutionService {
Expand Down
49 changes: 32 additions & 17 deletions lib/services/android-project-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,15 +308,15 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
}

public async buildProject(projectRoot: string, projectData: IProjectData, buildConfig: IBuildConfig): Promise<void> {
const buildOptions = this.getGradleBuildOptions(buildConfig, projectData);
const gradleArgs = this.getGradleBuildOptions(buildConfig, projectData);
if (this.$logger.getLevel() === "TRACE") {
buildOptions.unshift("--stacktrace");
buildOptions.unshift("--debug");
gradleArgs.unshift("--stacktrace");
gradleArgs.unshift("--debug");
}
if (buildConfig.release) {
buildOptions.unshift("assembleRelease");
gradleArgs.unshift("assembleRelease");
} else {
buildOptions.unshift("assembleDebug");
gradleArgs.unshift("assembleDebug");
}

const handler = (data: any) => {
Expand All @@ -326,10 +326,14 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
await attachAwaitDetach(constants.BUILD_OUTPUT_EVENT_NAME,
this.$childProcess,
handler,
this.executeCommand(this.getPlatformData(projectData).projectRoot,
buildOptions,
{ stdio: buildConfig.buildOutputStdio || "inherit" },
{ emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true }));
this.executeCommand({
projectRoot: this.getPlatformData(projectData).projectRoot,
gradleArgs,
childProcessOpts: { stdio: buildConfig.buildOutputStdio || "inherit" },
spawnFromEventOptions: { emitOptions: { eventName: constants.BUILD_OUTPUT_EVENT_NAME }, throwError: true },
message: "Gradle build..."
})
);
}

private getGradleBuildOptions(settings: IAndroidBuildOptionsSettings, projectData: IProjectData): Array<string> {
Expand All @@ -348,7 +352,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
return buildOptions;
}

public getBuildOptions(configurationFilePath?: string): Array<string> {
private getBuildOptions(configurationFilePath?: string): Array<string> {
this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, validateTargetSdk: true });

const androidToolsInfo = this.$androidToolsInfo.getToolsInfo();
Expand Down Expand Up @@ -607,14 +611,23 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
}

public stopServices(projectRoot: string): Promise<ISpawnResult> {
return this.executeCommand(projectRoot, ["--stop", "--quiet"], {stdio: "pipe"});
return this.executeCommand({
projectRoot,
gradleArgs: ["--stop", "--quiet"],
childProcessOpts: { stdio: "pipe" },
message: "Gradle stop services..."
});
}

public async cleanProject(projectRoot: string, projectData: IProjectData): Promise<void> {
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
const buildOptions = this.getGradleBuildOptions({ release: false }, projectData);
buildOptions.unshift("clean");
await this.executeCommand(projectRoot, buildOptions);
const gradleArgs = this.getGradleBuildOptions({ release: false }, projectData);
gradleArgs.unshift("clean");
await this.executeCommand({
projectRoot,
gradleArgs,
message: "Gradle clean..."
});
}
}

Expand Down Expand Up @@ -676,16 +689,18 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
return versionInManifest;
}

public async executeCommand(projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
private async executeCommand(opts: { projectRoot: string, gradleArgs: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions, message: string }): Promise<ISpawnResult> {
if (this.$androidToolsInfo.getToolsInfo().androidHomeEnvVar) {
const { projectRoot, gradleArgs, message, spawnFromEventOptions } = opts;
const gradlew = this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew";

if (this.$logger.getLevel() === "INFO") {
gradleArgs.push("--quiet");
this.$logger.info("Gradle build...");
}

childProcessOpts = childProcessOpts || {};
this.$logger.info(message);

const childProcessOpts = opts.childProcessOpts || {};
childProcessOpts.cwd = childProcessOpts.cwd || projectRoot;
childProcessOpts.stdio = childProcessOpts.stdio || "inherit";

Expand Down
9 changes: 0 additions & 9 deletions lib/services/ios-project-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import { IOSProvisionService } from "./ios-provision-service";
import { IOSEntitlementsService } from "./ios-entitlements-service";
import { XCConfigService } from "./xcconfig-service";
import * as mobileprovision from "ios-mobileprovision-finder";
import { SpawnOptions } from "child_process";
import { BUILD_XCCONFIG_FILE_NAME } from "../constants";

interface INativeSourceCodeGroup {
Expand Down Expand Up @@ -126,10 +125,6 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
return true;
}

public async executeCommand(projectRoot: string, args: any, childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
return { stderr: "", stdout: "", exitCode: 0 };
}

public getAppResourcesDestinationDirectoryPath(projectData: IProjectData): string {
const frameworkVersion = this.getFrameworkVersion(projectData);

Expand Down Expand Up @@ -1039,10 +1034,6 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
return [];
}

public getBuildOptions(configurationFilePath: string): Array<string> {
return [];
}

private getAllLibsForPluginWithFileExtension(pluginData: IPluginData, fileExtension: string): string[] {
const filterCallback = (fileName: string, pluginPlatformsFolderPath: string) => path.extname(fileName) === fileExtension;
return this.getAllNativeLibrariesForPlugin(pluginData, IOSProjectService.IOS_PLATFORM_NAME, filterCallback);
Expand Down
9 changes: 0 additions & 9 deletions test/stubs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import * as util from "util";
import * as chai from "chai";
import { EventEmitter } from "events";
import { SpawnOptions } from "child_process";
import * as path from "path";
import * as constants from "./../lib/constants";
import { Yok } from "./../lib/common/yok";
Expand Down Expand Up @@ -355,10 +354,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
return Promise.resolve();
}

public async executeCommand(projectRoot: string, gradleArgs: string[], childProcessOpts?: SpawnOptions, spawnFromEventOptions?: ISpawnFromEventOptions): Promise<ISpawnResult> {
return { stderr: "", stdout: "", exitCode: 0 };
}

async buildProject(projectRoot: string): Promise<void> {
return Promise.resolve();
}
Expand All @@ -380,10 +375,6 @@ export class PlatformProjectServiceStub extends EventEmitter implements IPlatfor
return Promise.resolve();
}

getBuildOptions(configurationFilePath?: string): Array<string> {
return [];
}

async removePluginNativeCode(pluginData: IPluginData): Promise<void> { }

async afterPrepareAllPlugins(): Promise<void> {
Expand Down