2525
2626 workflow_dispatch :
2727 inputs :
28- tests :
29- description : tests to run
30- required : true
31- default : " all"
32- type : choice
33- options :
34- - unit-tests
35- - integration-tests
36- - system-tests
37- - all
28+ force_all_builds :
29+ description : ' Run all tests and builds'
30+ required : false
31+ type : boolean
32+ default : false
3833
3934env :
4035 # NOTE: 'COLUMNS' is a shell env var that represents the width (number of columns)
@@ -275,7 +270,7 @@ jobs:
275270 # this step comes first, so that it is executed as first job in push calls
276271 # in PR calls this step is anyway skipped
277272 needs : changes
278- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
273+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
279274 uses : ./.github/workflows/_reusable-build-images.yml
280275 with :
281276 build-backend : true
@@ -287,7 +282,7 @@ jobs:
287282 # this step comes first, so that it is executed as first job in push calls
288283 # in PR calls this step is anyway skipped
289284 needs : changes
290- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
285+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
291286 uses : ./.github/workflows/_reusable-build-images.yml
292287 with :
293288 build-backend : false
@@ -297,7 +292,7 @@ jobs:
297292
298293 unit-test-webserver-01 :
299294 needs : changes
300- if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
295+ if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
301296 timeout-minutes : 25 # if this timeout gets too small, then split the tests
302297 name : " [unit] webserver 01"
303298 runs-on : ${{ matrix.os }}
@@ -345,7 +340,7 @@ jobs:
345340
346341 unit-test-webserver-02 :
347342 needs : changes
348- if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
343+ if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
349344 timeout-minutes : 25 # if this timeout gets too small, then split the tests
350345 name : " [unit] webserver 02"
351346 runs-on : ${{ matrix.os }}
@@ -387,7 +382,7 @@ jobs:
387382
388383 unit-test-webserver-03 :
389384 needs : changes
390- if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
385+ if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
391386 timeout-minutes : 25 # if this timeout gets too small, then split the tests
392387 name : " [unit] webserver 03"
393388 runs-on : ${{ matrix.os }}
@@ -429,7 +424,7 @@ jobs:
429424
430425 unit-test-webserver-04 :
431426 needs : changes
432- if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
427+ if : ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
433428 timeout-minutes : 25 # if this timeout gets too small, then split the tests
434429 name : " [unit] webserver 04"
435430 runs-on : ${{ matrix.os }}
@@ -474,7 +469,7 @@ jobs:
474469
475470 unit-test-storage :
476471 needs : changes
477- if : ${{ needs.changes.outputs.storage == 'true' || github.event_name == 'push' }}
472+ if : ${{ needs.changes.outputs.storage == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
478473 timeout-minutes : 25 # if this timeout gets too small, then split the tests
479474 name : " [unit] storage"
480475 runs-on : ${{ matrix.os }}
@@ -519,7 +514,7 @@ jobs:
519514
520515 unit-test-agent :
521516 needs : changes
522- if : ${{ needs.changes.outputs.agent == 'true' || github.event_name == 'push' }}
517+ if : ${{ needs.changes.outputs.agent == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
523518 timeout-minutes : 18 # if this timeout gets too small, then split the tests
524519 name : " [unit] agent"
525520 runs-on : ${{ matrix.os }}
@@ -565,7 +560,7 @@ jobs:
565560
566561 unit-test-notifications :
567562 needs : changes
568- if : ${{ needs.changes.outputs.notifications == 'true' || github.event_name == 'push' }}
563+ if : ${{ needs.changes.outputs.notifications == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
569564 timeout-minutes : 18 # if this timeout gets too small, then split the tests
570565 name : " [unit] notifications"
571566 runs-on : ${{ matrix.os }}
@@ -609,7 +604,7 @@ jobs:
609604
610605 unit-test-api :
611606 needs : changes
612- if : ${{ needs.changes.outputs.api == 'true' || github.event_name == 'push' }}
607+ if : ${{ needs.changes.outputs.api == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
613608 timeout-minutes : 18 # if this timeout gets too small, then split the tests
614609 name : " [unit] api"
615610 runs-on : ${{ matrix.os }}
@@ -651,7 +646,7 @@ jobs:
651646
652647 unit-test-api-server :
653648 needs : changes
654- if : ${{ needs.changes.outputs.api-server == 'true' || github.event_name == 'push' }}
649+ if : ${{ needs.changes.outputs.api-server == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
655650 timeout-minutes : 18 # if this timeout gets too small, then split the tests
656651 name : " [unit] api-server"
657652 runs-on : ${{ matrix.os }}
@@ -699,7 +694,7 @@ jobs:
699694
700695 unit-test-autoscaling :
701696 needs : changes
702- if : ${{ needs.changes.outputs.autoscaling == 'true' || github.event_name == 'push' }}
697+ if : ${{ needs.changes.outputs.autoscaling == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
703698 timeout-minutes : 22 # temporary: mypy takes a huge amount of time to run here, maybe we should cache it
704699 name : " [unit] autoscaling"
705700 runs-on : ${{ matrix.os }}
@@ -744,7 +739,7 @@ jobs:
744739
745740 unit-test-catalog :
746741 needs : changes
747- if : ${{ needs.changes.outputs.catalog == 'true' || github.event_name == 'push' }}
742+ if : ${{ needs.changes.outputs.catalog == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
748743 timeout-minutes : 18 # if this timeout gets too small, then split the tests
749744 name : " [unit] catalog"
750745 runs-on : ${{ matrix.os }}
@@ -795,7 +790,7 @@ jobs:
795790
796791 unit-test-clusters-keeper :
797792 needs : changes
798- if : ${{ needs.changes.outputs.clusters-keeper == 'true' || github.event_name == 'push' }}
793+ if : ${{ needs.changes.outputs.clusters-keeper == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
799794 timeout-minutes : 18 # if this timeout gets too small, then split the tests
800795 name : " [unit] clusters-keeper"
801796 runs-on : ${{ matrix.os }}
@@ -851,7 +846,7 @@ jobs:
851846
852847 unit-test-datcore-adapter :
853848 needs : changes
854- if : ${{ needs.changes.outputs.datcore-adapter == 'true' || github.event_name == 'push' }}
849+ if : ${{ needs.changes.outputs.datcore-adapter == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
855850 timeout-minutes : 18 # if this timeout gets too small, then split the tests
856851 name : " [unit] datcore-adapter"
857852 runs-on : ${{ matrix.os }}
@@ -902,7 +897,7 @@ jobs:
902897
903898 unit-test-director :
904899 needs : changes
905- if : ${{ needs.changes.outputs.director == 'true' || github.event_name == 'push' }}
900+ if : ${{ needs.changes.outputs.director == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
906901 timeout-minutes : 18 # if this timeout gets too small, then split the tests
907902 name : " [unit] director"
908903 runs-on : ${{ matrix.os }}
@@ -953,7 +948,7 @@ jobs:
953948
954949 unit-test-director-v2 :
955950 needs : changes
956- if : ${{ needs.changes.outputs.director-v2 == 'true' || github.event_name == 'push' }}
951+ if : ${{ needs.changes.outputs.director-v2 == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
957952 timeout-minutes : 18 # if this timeout gets too small, then split the tests
958953 name : " [unit] director-v2"
959954 runs-on : ${{ matrix.os }}
@@ -1004,7 +999,7 @@ jobs:
1004999
10051000 unit-test-aws-library :
10061001 needs : changes
1007- if : ${{ needs.changes.outputs.aws-library == 'true' || github.event_name == 'push' }}
1002+ if : ${{ needs.changes.outputs.aws-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
10081003 timeout-minutes : 18 # if this timeout gets too small, then split the tests
10091004 name : " [unit] aws-library"
10101005 runs-on : ${{ matrix.os }}
@@ -1049,7 +1044,7 @@ jobs:
10491044
10501045 unit-test-dask-task-models-library :
10511046 needs : changes
1052- if : ${{ needs.changes.outputs.dask-task-models-library == 'true' || github.event_name == 'push' }}
1047+ if : ${{ needs.changes.outputs.dask-task-models-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
10531048 timeout-minutes : 18 # if this timeout gets too small, then split the tests
10541049 name : " [unit] dask-task-models-library"
10551050 runs-on : ${{ matrix.os }}
@@ -1094,7 +1089,7 @@ jobs:
10941089
10951090 unit-test-dask-sidecar :
10961091 needs : changes
1097- if : ${{ needs.changes.outputs.dask-sidecar == 'true' || github.event_name == 'push' }}
1092+ if : ${{ needs.changes.outputs.dask-sidecar == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
10981093 timeout-minutes : 18 # if this timeout gets too small, then split the tests
10991094 name : " [unit] dask-sidecar"
11001095 runs-on : ${{ matrix.os }}
@@ -1139,7 +1134,7 @@ jobs:
11391134
11401135 unit-test-payments :
11411136 needs : changes
1142- if : ${{ needs.changes.outputs.payments == 'true' || github.event_name == 'push' }}
1137+ if : ${{ needs.changes.outputs.payments == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
11431138 timeout-minutes : 18 # if this timeout gets too small, then split the tests
11441139 name : " [unit] payments"
11451140 runs-on : ${{ matrix.os }}
@@ -1184,7 +1179,7 @@ jobs:
11841179
11851180 unit-test-dynamic-scheduler :
11861181 needs : changes
1187- if : ${{ needs.changes.outputs.dynamic-scheduler == 'true' || github.event_name == 'push' }}
1182+ if : ${{ needs.changes.outputs.dynamic-scheduler == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
11881183 timeout-minutes : 18 # if this timeout gets too small, then split the tests
11891184 name : " [unit] dynamic-scheduler"
11901185 runs-on : ${{ matrix.os }}
@@ -1229,7 +1224,7 @@ jobs:
12291224
12301225 unit-test-resource-usage-tracker :
12311226 needs : changes
1232- if : ${{ needs.changes.outputs.resource-usage-tracker == 'true' || github.event_name == 'push' }}
1227+ if : ${{ needs.changes.outputs.resource-usage-tracker == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
12331228 timeout-minutes : 18 # if this timeout gets too small, then split the tests
12341229 name : " [unit] resource-usage-tracker"
12351230 runs-on : ${{ matrix.os }}
@@ -1284,7 +1279,7 @@ jobs:
12841279
12851280 unit-test-dynamic-sidecar :
12861281 needs : changes
1287- if : ${{ needs.changes.outputs.dynamic-sidecar == 'true' || github.event_name == 'push' }}
1282+ if : ${{ needs.changes.outputs.dynamic-sidecar == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
12881283 timeout-minutes : 18 # if this timeout gets too small, then split the tests
12891284 name : " [unit] dynamic-sidecar"
12901285 runs-on : ${{ matrix.os }}
@@ -1329,7 +1324,7 @@ jobs:
13291324
13301325 unit-test-efs-guardian :
13311326 needs : changes
1332- if : ${{ needs.changes.outputs.efs-guardian == 'true' || github.event_name == 'push' }}
1327+ if : ${{ needs.changes.outputs.efs-guardian == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
13331328 timeout-minutes : 18 # if this timeout gets too small, then split the tests
13341329 name : " [unit] efs-guardian"
13351330 runs-on : ${{ matrix.os }}
@@ -1385,7 +1380,7 @@ jobs:
13851380
13861381 unit-test-python-linting :
13871382 needs : changes
1388- if : ${{ needs.changes.outputs.anything-py == 'true' || github.event_name == 'push' }}
1383+ if : ${{ needs.changes.outputs.anything-py == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
13891384 timeout-minutes : 18 # if this timeout gets too small, then split the tests
13901385 name : " [unit] python-linting"
13911386 runs-on : ${{ matrix.os }}
@@ -1420,7 +1415,7 @@ jobs:
14201415
14211416 unit-test-postgres-database :
14221417 needs : changes
1423- if : ${{ needs.changes.outputs.postgres-database == 'true' || github.event_name == 'push' }}
1418+ if : ${{ needs.changes.outputs.postgres-database == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
14241419 timeout-minutes : 18 # if this timeout gets too small, then split the tests
14251420 name : " [unit] postgres-database"
14261421 runs-on : ${{ matrix.os }}
@@ -1465,7 +1460,7 @@ jobs:
14651460
14661461 unit-test-invitations :
14671462 needs : changes
1468- if : ${{ needs.changes.outputs.invitations == 'true' || github.event_name == 'push' }}
1463+ if : ${{ needs.changes.outputs.invitations == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
14691464 timeout-minutes : 18 # if this timeout gets too small, then split the tests
14701465 name : " [unit] invitations"
14711466 runs-on : ${{ matrix.os }}
@@ -1510,7 +1505,7 @@ jobs:
15101505
15111506 unit-test-service-integration :
15121507 needs : changes
1513- if : ${{ needs.changes.outputs.service-integration == 'true' || github.event_name == 'push' }}
1508+ if : ${{ needs.changes.outputs.service-integration == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
15141509 timeout-minutes : 18 # if this timeout gets too small, then split the tests
15151510 name : " [unit] service-integration"
15161511 runs-on : ${{ matrix.os }}
@@ -1555,7 +1550,7 @@ jobs:
15551550
15561551 unit-test-service-library :
15571552 needs : changes
1558- if : ${{ needs.changes.outputs.service-library == 'true' || github.event_name == 'push' }}
1553+ if : ${{ needs.changes.outputs.service-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
15591554 timeout-minutes : 18 # if this timeout gets too small, then split the tests
15601555 name : " [unit] service-library"
15611556 runs-on : ${{ matrix.os }}
@@ -1600,7 +1595,7 @@ jobs:
16001595
16011596 unit-test-settings-library :
16021597 needs : changes
1603- if : ${{ needs.changes.outputs.settings-library == 'true' || github.event_name == 'push' }}
1598+ if : ${{ needs.changes.outputs.settings-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
16041599 timeout-minutes : 18 # if this timeout gets too small, then split the tests
16051600 name : " [unit] settings-library"
16061601 runs-on : ${{ matrix.os }}
@@ -1645,7 +1640,7 @@ jobs:
16451640
16461641 unit-test-models-library :
16471642 needs : changes
1648- if : ${{ needs.changes.outputs.models-library == 'true' || github.event_name == 'push' }}
1643+ if : ${{ needs.changes.outputs.models-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
16491644 timeout-minutes : 18 # if this timeout gets too small, then split the tests
16501645 name : " [unit] models-library"
16511646 runs-on : ${{ matrix.os }}
@@ -1689,7 +1684,7 @@ jobs:
16891684
16901685 unit-test-common-library :
16911686 needs : changes
1692- if : ${{ needs.changes.outputs.common-library == 'true' || github.event_name == 'push' }}
1687+ if : ${{ needs.changes.outputs.common-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
16931688 timeout-minutes : 18 # if this timeout gets too small, then split the tests
16941689 name : " [unit] common-library"
16951690 runs-on : ${{ matrix.os }}
@@ -1725,7 +1720,7 @@ jobs:
17251720
17261721 unit-test-notifications-library :
17271722 needs : changes
1728- if : ${{ needs.changes.outputs.notifications-library == 'true' || github.event_name == 'push' }}
1723+ if : ${{ needs.changes.outputs.notifications-library == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
17291724 timeout-minutes : 18 # if this timeout gets too small, then split the tests
17301725 name : " [unit]notifications-library"
17311726 runs-on : ${{ matrix.os }}
@@ -1770,7 +1765,7 @@ jobs:
17701765
17711766 unit-test-simcore-sdk :
17721767 needs : changes
1773- if : ${{ needs.changes.outputs.simcore-sdk == 'true' || github.event_name == 'push' }}
1768+ if : ${{ needs.changes.outputs.simcore-sdk == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
17741769 timeout-minutes : 18 # if this timeout gets too small, then split the tests
17751770 name : " [unit] simcore-sdk"
17761771 runs-on : ${{ matrix.os }}
@@ -1867,7 +1862,7 @@ jobs:
18671862
18681863 integration-test-webserver-01 :
18691864 needs : [changes, build-test-images]
1870- if : ${{ needs.changes.outputs.anything-py == 'true' || needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
1865+ if : ${{ needs.changes.outputs.anything-py == 'true' || needs.changes.outputs.webserver == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
18711866 timeout-minutes : 30 # if this timeout gets too small, then split the tests
18721867 name : " [int] webserver 01"
18731868 runs-on : ${{ matrix.os }}
@@ -2349,7 +2344,7 @@ jobs:
23492344
23502345 system-test-public-api :
23512346 needs : [changes, build-test-images, build-test-images-frontend]
2352- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
2347+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
23532348 timeout-minutes : 25 # if this timeout gets too small, then split the tests
23542349 name : " [sys] public api"
23552350 runs-on : ${{ matrix.os }}
@@ -2409,7 +2404,7 @@ jobs:
24092404
24102405 system-test-swarm-deploy :
24112406 needs : [changes, build-test-images, build-test-images-frontend]
2412- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
2407+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
24132408 timeout-minutes : 30 # if this timeout gets too small, then split the tests
24142409 name : " [sys] deploy simcore"
24152410 runs-on : ${{ matrix.os }}
@@ -2474,7 +2469,7 @@ jobs:
24742469
24752470 system-test-e2e :
24762471 needs : [changes, build-test-images, build-test-images-frontend]
2477- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
2472+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
24782473 timeout-minutes : 30 # if this timeout gets too small, then split the tests
24792474 name : " [sys] e2e"
24802475 runs-on : ${{ matrix.os }}
@@ -2554,7 +2549,7 @@ jobs:
25542549
25552550 system-test-e2e-playwright :
25562551 needs : [changes, build-test-images, build-test-images-frontend]
2557- if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }}
2552+ if : ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' || github.event.inputs.force_all_builds == 'true' }}
25582553 timeout-minutes : 30 # if this timeout gets too small, then split the tests
25592554 name : " [sys] e2e-playwright"
25602555 runs-on : ${{ matrix.os }}
0 commit comments