@@ -218,16 +218,27 @@ func uploadBuilds(t *testing.T) func() {
218
218
}
219
219
}
220
220
221
+ func uploadBuildsWithProject (t * testing.T ) func () {
222
+ uploadBuildWithArtifactsAndProject (t , tests .UploadDevSpecA , tests .LcBuildName1 , number1 , tests .ProjectKey )
223
+ uploadBuildWithArtifactsAndProject (t , tests .UploadDevSpecB , tests .LcBuildName2 , number2 , tests .ProjectKey )
224
+ uploadBuildWithDepsAndProject (t , tests .LcBuildName3 , number3 , tests .ProjectKey )
225
+ return func () {
226
+ inttestutils .DeleteBuild (serverDetails .ArtifactoryUrl , tests .LcBuildName1 , artHttpDetails )
227
+ inttestutils .DeleteBuild (serverDetails .ArtifactoryUrl , tests .LcBuildName2 , artHttpDetails )
228
+ inttestutils .DeleteBuild (serverDetails .ArtifactoryUrl , tests .LcBuildName3 , artHttpDetails )
229
+ }
230
+ }
231
+
221
232
func createRbBackwardCompatible (t * testing.T , specName , sourceOption , rbName , rbVersion string , sync bool ) {
222
233
specFile , err := getSpecFile (specName )
223
234
assert .NoError (t , err )
224
- createRbWithFlags (t , specFile , sourceOption , "" , "" , rbName , rbVersion , sync , false )
235
+ createRbWithFlags (t , specFile , sourceOption , "" , "" , rbName , rbVersion , "" , sync , false )
225
236
}
226
237
227
238
func createRbFromSpec (t * testing.T , specName , rbName , rbVersion string , sync bool , withoutSigningKey bool ) {
228
239
specFile , err := tests .CreateSpec (specName )
229
240
assert .NoError (t , err )
230
- createRbWithFlags (t , specFile , "spec" , "" , "" , rbName , rbVersion , sync , withoutSigningKey )
241
+ createRbWithFlags (t , specFile , "spec" , "" , "" , rbName , rbVersion , "" , sync , withoutSigningKey )
231
242
}
232
243
233
244
func TestCreateBundleWithoutSpec (t * testing.T ) {
@@ -239,16 +250,34 @@ func TestCreateBundleWithoutSpec(t *testing.T) {
239
250
deleteBuilds := uploadBuilds (t )
240
251
defer deleteBuilds ()
241
252
242
- createRbWithFlags (t , "" , "" , tests .LcBuildName1 , number1 , tests .LcRbName1 , number1 , false , false )
253
+ createRbWithFlags (t , "" , "" , tests .LcBuildName1 , number1 , tests .LcRbName1 , number1 , "" , false , false )
243
254
assertStatusCompleted (t , lcManager , tests .LcRbName1 , number1 , "" )
244
255
defer deleteReleaseBundle (t , lcManager , tests .LcRbName1 , number1 )
245
256
246
- createRbWithFlags (t , "" , "" , tests .LcBuildName2 , number2 , tests .LcRbName2 , number2 , false , true )
257
+ createRbWithFlags (t , "" , "" , tests .LcBuildName2 , number2 , tests .LcRbName2 , number2 , "" , false , true )
247
258
assertStatusCompleted (t , lcManager , tests .LcRbName2 , number2 , "" )
248
259
defer deleteReleaseBundle (t , lcManager , tests .LcRbName2 , number2 )
249
260
}
250
261
251
- func createRbWithFlags (t * testing.T , specFilePath , sourceOption , buildName , buildNumber , rbName , rbVersion string ,
262
+ func TestCreateBundleWithoutSpecAndWithProject (t * testing.T ) {
263
+ cleanCallback := initLifecycleTest (t , signingKeyOptionalArtifactoryMinVersion )
264
+ defer cleanCallback ()
265
+ deleteProject := createTestProject (t )
266
+ defer func () {
267
+ if err := deleteProject (); err != nil {
268
+ t .Error (err )
269
+ }
270
+ }()
271
+ lcManager := getLcServiceManager (t )
272
+ deleteBuilds := uploadBuildsWithProject (t )
273
+ defer deleteBuilds ()
274
+
275
+ createRbWithFlags (t , "" , "" , tests .LcBuildName1 , number1 , tests .LcRbName1 , number1 , tests .ProjectKey , false , false )
276
+ assertStatusCompletedWithProject (t , lcManager , tests .LcRbName1 , number1 , "" , tests .ProjectKey )
277
+ defer deleteReleaseBundleWithProject (t , lcManager , tests .LcRbName1 , number1 , tests .ProjectKey )
278
+ }
279
+
280
+ func createRbWithFlags (t * testing.T , specFilePath , sourceOption , buildName , buildNumber , rbName , rbVersion , project string ,
252
281
sync , withoutSigningKey bool ) {
253
282
argsAndOptions := []string {
254
283
"rbc" ,
@@ -273,6 +302,10 @@ func createRbWithFlags(t *testing.T, specFilePath, sourceOption, buildName, buil
273
302
argsAndOptions = append (argsAndOptions , getOption (cliutils .Sync , "true" ))
274
303
}
275
304
305
+ if project != "" {
306
+ argsAndOptions = append (argsAndOptions , getOption (cliutils .Project , project ))
307
+ }
308
+
276
309
assert .NoError (t , lcCli .Exec (argsAndOptions ... ))
277
310
}
278
311
@@ -335,6 +368,15 @@ func assertStatusCompleted(t *testing.T, lcManager *lifecycle.LifecycleServicesM
335
368
assert .Equal (t , services .Completed , resp .Status )
336
369
}
337
370
371
+ // If createdMillis is provided, assert status for promotion. If blank, assert for creation.
372
+ func assertStatusCompletedWithProject (t * testing.T , lcManager * lifecycle.LifecycleServicesManager , rbName , rbVersion , createdMillis , projectKey string ) {
373
+ resp , err := getStatusWithProject (lcManager , rbName , rbVersion , createdMillis , projectKey )
374
+ if ! assert .NoError (t , err ) {
375
+ return
376
+ }
377
+ assert .Equal (t , services .Completed , resp .Status )
378
+ }
379
+
338
380
func getLcServiceManager (t * testing.T ) * lifecycle.LifecycleServicesManager {
339
381
lcManager , err := utils .CreateLifecycleServiceManager (lcDetails , false )
340
382
assert .NoError (t , err )
@@ -371,6 +413,18 @@ func getStatus(lcManager *lifecycle.LifecycleServicesManager, rbName, rbVersion,
371
413
return lcManager .GetReleaseBundlePromotionStatus (rbDetails , "" , createdMillis , true )
372
414
}
373
415
416
+ func getStatusWithProject (lcManager * lifecycle.LifecycleServicesManager , rbName , rbVersion , createdMillis , projectKey string ) (services.ReleaseBundleStatusResponse , error ) {
417
+ rbDetails := services.ReleaseBundleDetails {
418
+ ReleaseBundleName : rbName ,
419
+ ReleaseBundleVersion : rbVersion ,
420
+ }
421
+
422
+ if createdMillis == "" {
423
+ return lcManager .GetReleaseBundleCreationStatus (rbDetails , projectKey , true )
424
+ }
425
+ return lcManager .GetReleaseBundlePromotionStatus (rbDetails , projectKey , createdMillis , true )
426
+ }
427
+
374
428
func getReleaseBundleSpecification (lcManager * lifecycle.LifecycleServicesManager , rbName , rbVersion string ) (services.ReleaseBundleSpecResponse , error ) {
375
429
rbDetails := services.ReleaseBundleDetails {
376
430
ReleaseBundleName : rbName ,
@@ -391,6 +445,17 @@ func deleteReleaseBundle(t *testing.T, lcManager *lifecycle.LifecycleServicesMan
391
445
time .Sleep (5 * time .Second )
392
446
}
393
447
448
+ func deleteReleaseBundleWithProject (t * testing.T , lcManager * lifecycle.LifecycleServicesManager , rbName , rbVersion , projectKey string ) {
449
+ rbDetails := services.ReleaseBundleDetails {
450
+ ReleaseBundleName : rbName ,
451
+ ReleaseBundleVersion : rbVersion ,
452
+ }
453
+
454
+ assert .NoError (t , lcManager .DeleteReleaseBundleVersion (rbDetails , services.CommonOptionalQueryParams {Async : false , ProjectKey : projectKey }))
455
+ // Wait after remote deleting. Can be removed once remote deleting supports sync.
456
+ time .Sleep (5 * time .Second )
457
+ }
458
+
394
459
/*
395
460
func remoteDeleteReleaseBundle(t *testing.T, lcManager *lifecycle.LifecycleServicesManager, rbName, rbVersion string) {
396
461
params := distribution.NewDistributeReleaseBundleParams(rbName, rbVersion)
@@ -428,6 +493,27 @@ func uploadBuildWithDeps(t *testing.T, buildName, buildNumber string) {
428
493
runRt (t , "build-publish" , buildName , buildNumber )
429
494
}
430
495
496
+ func uploadBuildWithArtifactsAndProject (t * testing.T , specFileName , buildName , buildNumber , projectKey string ) {
497
+ specFile , err := tests .CreateSpec (specFileName )
498
+ assert .NoError (t , err )
499
+
500
+ runRt (t , "upload" , "--spec=" + specFile , "--build-name=" + buildName , "--build-number=" + buildNumber , "--project=" + projectKey )
501
+ runRt (t , "build-publish" , buildName , buildNumber , "--project=" + projectKey )
502
+ }
503
+
504
+ func uploadBuildWithDepsAndProject (t * testing.T , buildName , buildNumber , projectKey string ) {
505
+ err := fileutils .CreateDirIfNotExist (tests .Out )
506
+ assert .NoError (t , err )
507
+
508
+ randFile , err := io .CreateRandFile (filepath .Join (tests .Out , "dep-file" ), 1000 )
509
+ assert .NoError (t , err )
510
+
511
+ runRt (t , "upload" , randFile .Name (), tests .RtDevRepo , "--flat" , "--project=" + projectKey )
512
+ assert .NoError (t , lcCli .WithoutCredentials ().Exec ("rt" , "bad" , buildName , buildNumber , tests .RtDevRepo + "/dep-file" , "--from-rt" ))
513
+
514
+ runRt (t , "build-publish" , buildName , buildNumber , "--project=" + projectKey )
515
+ }
516
+
431
517
func initLifecycleTest (t * testing.T , minVersion string ) (cleanCallback func ()) {
432
518
if ! * tests .TestLifecycle {
433
519
t .Skip ("Skipping lifecycle test. To run release bundle test add the '-test.lc=true' option." )
0 commit comments