@@ -406,6 +406,8 @@ integration:prerelease:
406
406
stage : integration
407
407
needs :
408
408
- integration:builds
409
+ - job : build:prerelease
410
+ optional : true
409
411
- job : integration:nix
410
412
optional : true
411
413
- job : integration:docker
@@ -457,22 +459,16 @@ integration:prerelease:
457
459
integration:merge :
458
460
stage : integration
459
461
needs :
460
- - job : build:merge
461
- artifacts : false
462
+ - build:merge
462
463
- job : integration:nix
463
464
optional : true
464
- artifacts : false
465
465
- job : integration:docker
466
466
optional : true
467
- artifacts : false
468
467
- job : integration:linux
469
468
optional : true
470
- artifacts : false
471
469
- job : integration:windows
472
470
optional : true
473
- artifacts : false
474
471
- job : integration:macos
475
- artifacts : false
476
472
optional : true
477
473
# Requires mutual exclusion
478
474
resource_group : integration:merge
@@ -501,50 +497,49 @@ integration:merge:
501
497
# Runs on tag pipeline where the tag is a prerelease or release version
502
498
- if : $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/
503
499
504
- release:deployment :
500
+ release:deployment:branch :
505
501
stage : release
502
+ # Only needs integration:builds from the staging branch pipeline
506
503
needs :
507
- - job : integration:merge
508
- optional : true
509
504
- project : $CI_PROJECT_PATH
510
505
job : integration:builds
511
506
ref : staging
512
507
artifacts : true
513
508
# Don't interrupt deploying job
514
509
interruptible : false
515
- # Requires mutual exclusion
510
+ # Requires mutual exclusion (also with release:deployment:tag)
516
511
resource_group : release:deployment
517
512
script :
518
513
- echo 'Perform service deployment for production'
519
514
rules :
520
515
# Runs on master commits and ignores version commits
521
516
- if : $CI_COMMIT_BRANCH == 'master' && $CI_COMMIT_TITLE !~ /^[0-9]+\.[0-9]+\.[0-9]+(?:-.*[0-9]+)?$/
517
+
518
+ release:deployment:tag :
519
+ stage : release
520
+ # Tag pipelines run independently
521
+ needs :
522
+ - integration:builds
523
+ - integration:merge
524
+ # Don't interrupt deploying job
525
+ interruptible : false
526
+ # Requires mutual exclusion (also with release:deployment:branch)
527
+ resource_group : release:deployment
528
+ script :
529
+ - echo 'Perform service deployment for production'
530
+ rules :
522
531
# Runs on tag pipeline where the tag is a release version
523
532
- if : $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/
524
533
525
534
release:distribution :
526
535
stage : release
527
536
needs :
528
- - job : integration:merge
529
- optional : true
530
- - job : release:deployment
531
- optional : true
532
- - project : $CI_PROJECT_PATH
533
- job : build:linux
534
- ref : staging
535
- artifacts : true
536
- - project : $CI_PROJECT_PATH
537
- job : build:windows
538
- ref : staging
539
- artifacts : true
540
- - project : $CI_PROJECT_PATH
541
- job : build:macos
542
- ref : staging
543
- artifacts : true
544
- - project : $CI_PROJECT_PATH
545
- job : integration:builds
546
- ref : staging
547
- artifacts : true
537
+ - build:linux
538
+ - build:windows
539
+ - build:macos
540
+ - integration:builds
541
+ - integration:merge
542
+ - release:deployment:tag
548
543
# Don't interrupt publishing job
549
544
interruptible : false
550
545
before_script :
0 commit comments