@@ -380,6 +380,8 @@ integration:prerelease:
380
380
stage : integration
381
381
needs :
382
382
- integration:builds
383
+ - job : build:prerelease
384
+ optional : true
383
385
- job : integration:nix
384
386
optional : true
385
387
- job : integration:docker
@@ -431,22 +433,16 @@ integration:prerelease:
431
433
integration:merge :
432
434
stage : integration
433
435
needs :
434
- - job : build:merge
435
- artifacts : false
436
+ - build:merge
436
437
- job : integration:nix
437
438
optional : true
438
- artifacts : false
439
439
- job : integration:docker
440
440
optional : true
441
- artifacts : false
442
441
- job : integration:linux
443
442
optional : true
444
- artifacts : false
445
443
- job : integration:windows
446
444
optional : true
447
- artifacts : false
448
445
- job : integration:macos
449
- artifacts : false
450
446
optional : true
451
447
# Requires mutual exclusion
452
448
resource_group : integration:merge
@@ -475,50 +471,49 @@ integration:merge:
475
471
# Runs on tag pipeline where the tag is a prerelease or release version
476
472
- if : $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/
477
473
478
- release:deployment :
474
+ release:deployment:branch :
479
475
stage : release
476
+ # Only needs integration:builds from the staging branch pipeline
480
477
needs :
481
- - job : integration:merge
482
- optional : true
483
478
- project : $CI_PROJECT_PATH
484
479
job : integration:builds
485
480
ref : staging
486
481
artifacts : true
487
482
# Don't interrupt deploying job
488
483
interruptible : false
489
- # Requires mutual exclusion
484
+ # Requires mutual exclusion (also with release:deployment:tag)
490
485
resource_group : release:deployment
491
486
script :
492
487
- echo 'Perform service deployment for production'
493
488
rules :
494
489
# Runs on master commits and ignores version commits
495
490
- if : $CI_COMMIT_BRANCH == 'master' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/
491
+
492
+ release:deployment:tag :
493
+ stage : release
494
+ # Tag pipelines run independently
495
+ needs :
496
+ - integration:builds
497
+ - integration:merge
498
+ # Don't interrupt deploying job
499
+ interruptible : false
500
+ # Requires mutual exclusion (also with release:deployment:branch)
501
+ resource_group : release:deployment
502
+ script :
503
+ - echo 'Perform service deployment for production'
504
+ rules :
496
505
# Runs on tag pipeline where the tag is a release version
497
506
- if : $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/
498
507
499
508
release:distribution :
500
509
stage : release
501
510
needs :
502
- - job : integration:merge
503
- optional : true
504
- - job : release:deployment
505
- optional : true
506
- - project : $CI_PROJECT_PATH
507
- job : build:linux
508
- ref : staging
509
- artifacts : true
510
- - project : $CI_PROJECT_PATH
511
- job : build:windows
512
- ref : staging
513
- artifacts : true
514
- - project : $CI_PROJECT_PATH
515
- job : build:macos
516
- ref : staging
517
- artifacts : true
518
- - project : $CI_PROJECT_PATH
519
- job : integration:builds
520
- ref : staging
521
- artifacts : true
511
+ - build:linux
512
+ - build:windows
513
+ - build:macos
514
+ - integration:builds
515
+ - integration:merge
516
+ - release:deployment:tag
522
517
# Don't interrupt publishing job
523
518
interruptible : false
524
519
before_script :
0 commit comments