Skip to content

Commit ac38f16

Browse files
author
Dimitar Tachev
authored
Merge pull request #4719 from NativeScript/fatme/fix-cloud-build
fix: save correct .nsprepareinfo file on cloud commands
2 parents f7f47a3 + 9de2c48 commit ac38f16

7 files changed

+19
-15
lines changed

lib/controllers/prepare-controller.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class PrepareController extends EventEmitter {
4747
result = { hasNativeChanges, platform: prepareData.platform.toLowerCase() };
4848
}
4949

50-
this.$projectChangesService.savePrepareInfo(platformData);
50+
await this.$projectChangesService.savePrepareInfo(platformData, projectData, prepareData);
5151

5252
this.$logger.info(`Project successfully prepared (${prepareData.platform.toLowerCase()})`);
5353

lib/services/platform/add-platform-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export class AddPlatformService implements IAddPlatformService {
6161
platformData.platformProjectService.ensureConfigurationFileInAppResources(projectData);
6262
await platformData.platformProjectService.interpolateData(projectData);
6363
platformData.platformProjectService.afterCreateProject(platformData.projectRoot, projectData);
64-
this.$projectChangesService.setNativePlatformStatus(platformData, { nativePlatformStatus: NativePlatformStatus.requiresPrepare });
64+
await this.$projectChangesService.setNativePlatformStatus(platformData, projectData, { nativePlatformStatus: NativePlatformStatus.requiresPrepare });
6565
}
6666
}
6767
$injector.register("addPlatformService", AddPlatformService);

lib/services/platform/prepare-native-platform-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class PrepareNativePlatformService implements IPrepareNativePlatformServi
4747
}
4848

4949
platformData.platformProjectService.interpolateConfigurationFile(projectData);
50-
this.$projectChangesService.setNativePlatformStatus(platformData, { nativePlatformStatus: NativePlatformStatus.alreadyPrepared });
50+
await this.$projectChangesService.setNativePlatformStatus(platformData, projectData, { nativePlatformStatus: NativePlatformStatus.alreadyPrepared });
5151

5252
return hasChanges;
5353
}

lib/services/project-changes-service.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,16 @@ export class ProjectChangesService implements IProjectChangesService {
136136
return prepareInfo;
137137
}
138138

139-
public savePrepareInfo(platformData: IPlatformData): void {
139+
public async savePrepareInfo(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise<void> {
140+
if (!this._prepareInfo) {
141+
await this.ensurePrepareInfo(platformData, projectData, prepareData);
142+
}
143+
140144
const prepareInfoFilePath = this.getPrepareInfoFilePath(platformData);
141145
this.$fs.writeJson(prepareInfoFilePath, this._prepareInfo);
142146
}
143147

144-
public setNativePlatformStatus(platformData: IPlatformData, addedPlatform: IAddedNativePlatform): void {
148+
public async setNativePlatformStatus(platformData: IPlatformData, projectData: IProjectData, addedPlatform: IAddedNativePlatform): Promise<void> {
145149
this._prepareInfo = this._prepareInfo || this.getPrepareInfo(platformData);
146150
if (this._prepareInfo && addedPlatform.nativePlatformStatus === NativePlatformStatus.alreadyPrepared) {
147151
this._prepareInfo.nativePlatformStatus = addedPlatform.nativePlatformStatus;
@@ -151,7 +155,7 @@ export class ProjectChangesService implements IProjectChangesService {
151155
};
152156
}
153157

154-
this.savePrepareInfo(platformData);
158+
await this.savePrepareInfo(platformData, projectData, null);
155159
}
156160

157161
private async ensurePrepareInfo(platformData: IPlatformData, projectData: IProjectData, prepareData: PrepareData): Promise<boolean> {

lib/services/webpack/webpack.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ declare global {
1919
checkForChanges(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise<IProjectChangesInfo>;
2020
getPrepareInfoFilePath(platformData: IPlatformData): string;
2121
getPrepareInfo(platformData: IPlatformData): IPrepareInfo;
22-
savePrepareInfo(platformData: IPlatformData): void;
23-
setNativePlatformStatus(platformData: IPlatformData, addedPlatform: IAddedNativePlatform): void;
22+
savePrepareInfo(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise<void>;
23+
setNativePlatformStatus(platformData: IPlatformData, projectData: IProjectData, addedPlatform: IAddedNativePlatform): void;
2424
currentChanges: IProjectChangesInfo;
2525
}
2626

test/project-changes-service.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@ describe("Project Changes Service Tests", () => {
170170
});
171171

172172
describe("setNativePlatformStatus", () => {
173-
it("creates prepare info and sets only the native platform status when there isn't an existing prepare info", () => {
173+
it("creates prepare info and sets only the native platform status when there isn't an existing prepare info", async () => {
174174
for (const platform of ["ios", "android"]) {
175-
serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), { nativePlatformStatus: Constants.NativePlatformStatus.requiresPrepare });
175+
await serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), serviceTest.projectData, { nativePlatformStatus: Constants.NativePlatformStatus.requiresPrepare });
176176

177177
const actualPrepareInfo = serviceTest.projectChangesService.getPrepareInfo(serviceTest.getPlatformData(platform));
178178

@@ -183,10 +183,10 @@ describe("Project Changes Service Tests", () => {
183183
it(`shouldn't reset prepare info when native platform status is ${Constants.NativePlatformStatus.alreadyPrepared} and there is existing prepare info`, async () => {
184184
for (const platform of ["ios", "android"]) {
185185
await serviceTest.projectChangesService.checkForChanges(serviceTest.getPlatformData(platform), serviceTest.projectData, <any>{});
186-
serviceTest.projectChangesService.savePrepareInfo(serviceTest.getPlatformData(platform));
186+
await serviceTest.projectChangesService.savePrepareInfo(serviceTest.getPlatformData(platform), serviceTest.projectData, null);
187187
const prepareInfo = serviceTest.projectChangesService.getPrepareInfo(serviceTest.getPlatformData(platform));
188188

189-
serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), { nativePlatformStatus: Constants.NativePlatformStatus.alreadyPrepared });
189+
await serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), serviceTest.projectData, { nativePlatformStatus: Constants.NativePlatformStatus.alreadyPrepared });
190190

191191
const actualPrepareInfo = serviceTest.projectChangesService.getPrepareInfo(serviceTest.getPlatformData(platform));
192192
prepareInfo.nativePlatformStatus = Constants.NativePlatformStatus.alreadyPrepared;
@@ -198,7 +198,7 @@ describe("Project Changes Service Tests", () => {
198198
it(`should reset prepare info when native platform status is ${nativePlatformStatus} and there is existing prepare info`, async () => {
199199
for (const platform of ["ios", "android"]) {
200200
await serviceTest.projectChangesService.checkForChanges(serviceTest.getPlatformData(platform), serviceTest.projectData, <any>{});
201-
serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), { nativePlatformStatus: nativePlatformStatus });
201+
await serviceTest.projectChangesService.setNativePlatformStatus(serviceTest.getPlatformData(platform), serviceTest.projectData, { nativePlatformStatus: nativePlatformStatus });
202202

203203
const actualPrepareInfo = serviceTest.projectChangesService.getPrepareInfo(serviceTest.getPlatformData(platform));
204204
assert.deepEqual(actualPrepareInfo, { nativePlatformStatus: nativePlatformStatus });

test/stubs.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ export class ProjectChangesService implements IProjectChangesService {
749749
return null;
750750
}
751751

752-
public savePrepareInfo(platformData: IPlatformData): void {
752+
public async savePrepareInfo(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise<void> {
753753
}
754754

755755
public getPrepareInfoFilePath(platformData: IPlatformData): string {
@@ -760,7 +760,7 @@ export class ProjectChangesService implements IProjectChangesService {
760760
return <IProjectChangesInfo>{};
761761
}
762762

763-
public setNativePlatformStatus(platformData: IPlatformData, addedPlatform: IAddedNativePlatform): void {
763+
public async setNativePlatformStatus(platformData: IPlatformData, projectData: IProjectData, addedPlatform: IAddedNativePlatform): Promise<void> {
764764
return;
765765
}
766766
}

0 commit comments

Comments
 (0)