File tree Expand file tree Collapse file tree 3 files changed +52
-19
lines changed
lib/front/models/pipeline Expand file tree Collapse file tree 3 files changed +52
-19
lines changed Original file line number Diff line number Diff line change @@ -118,7 +118,7 @@ defmodule Front.Models.Pipeline.Triggerer do
118
118
{ :user , { triggerer . wf_triggerer_user_id , "" } }
119
119
120
120
:SCHEDULED_RUN ->
121
- :none
121
+ detect_scheduled_run_owner ( triggerer )
122
122
123
123
:SCHEDULED_MANUAL_RUN ->
124
124
{ :user , { triggerer . wf_triggerer_user_id , "" } }
@@ -137,6 +137,17 @@ defmodule Front.Models.Pipeline.Triggerer do
137
137
end
138
138
end
139
139
140
+ defp detect_scheduled_run_owner ( triggerer ) do
141
+ PplTriggeredBy . key ( triggerer . ppl_triggered_by )
142
+ |> case do
143
+ :PROMOTION ->
144
+ { :user , { triggerer . ppl_triggerer_user_id , "" } }
145
+
146
+ _ ->
147
+ :none
148
+ end
149
+ end
150
+
140
151
@ spec detect_trigger ( InternalApi.Plumber.Pipeline . t ( ) ) :: { trigger_type ( ) , triggered_by ( ) }
141
152
# # credo:disable-for-next-line Credo.Check.Refactor.CyclomaticComplexity
142
153
defp detect_trigger ( pipeline ) do
@@ -148,6 +159,9 @@ defmodule Front.Models.Pipeline.Triggerer do
148
159
wf_triggered_by == :API ->
149
160
{ :API , :none }
150
161
162
+ wf_triggered_by == :SCHEDULE && ppl_triggered_by == :PROMOTION ->
163
+ { :MANUAL_PROMOTION , :none }
164
+
151
165
wf_triggered_by == :SCHEDULE ->
152
166
{ :SCHEDULED_RUN , { :task , { triggerer . wf_triggerer_id , "" } } }
153
167
Original file line number Diff line number Diff line change @@ -35,6 +35,15 @@ defmodule Front.Models.Pipeline.TriggererTest do
35
35
assert { :task , _ } = triggerer . triggered_by
36
36
assert :none == triggerer . owner
37
37
end
38
+
39
+ test "constructs proper triggerer for promotions" do
40
+ pipeline = Factories . pipeline_with_trigger ( :SCHEDULED_RUN_WITH_PROMOTION )
41
+ triggerer = Triggerer . construct ( pipeline )
42
+
43
+ assert :MANUAL_PROMOTION == triggerer . trigger_type
44
+ assert :none = triggerer . triggered_by
45
+ assert { :user , _ } = triggerer . owner
46
+ end
38
47
end
39
48
40
49
describe "#construct for scheduled manual run" do
Original file line number Diff line number Diff line change @@ -3099,64 +3099,74 @@ defmodule Support.Factories do
3099
3099
end
3100
3100
3101
3101
def pipeline_with_trigger ( trigger_type \\ nil ) do
3102
- trigger_type
3103
- |> case do
3104
- :INITIAL_WORKFLOW ->
3102
+ db = % {
3103
+ INITIAL_WORKFLOW: fn ->
3105
3104
pipeline (
3106
3105
triggerer: [
3107
3106
wf_triggered_by: WfTriggeredBy . value ( :HOOK ) ,
3108
3107
ppl_triggered_by: PplTriggeredBy . value ( :WORKFLOW )
3109
3108
]
3110
3109
)
3111
-
3112
- : WORKFLOW_RERUN ->
3110
+ end ,
3111
+ WORKFLOW_RERUN: fn ->
3113
3112
pipeline (
3114
3113
triggerer: [
3115
3114
workflow_rerun_of: Ecto.UUID . generate ( )
3116
3115
]
3117
3116
)
3118
-
3119
- : API ->
3117
+ end ,
3118
+ API: fn ->
3120
3119
pipeline (
3121
3120
triggerer: [
3122
3121
wf_triggered_by: WfTriggeredBy . value ( :API )
3123
3122
]
3124
3123
)
3125
-
3126
- : SCHEDULED_RUN ->
3124
+ end ,
3125
+ SCHEDULED_RUN: fn ->
3127
3126
pipeline (
3128
3127
triggerer: [
3129
3128
wf_triggered_by: WfTriggeredBy . value ( :SCHEDULE )
3130
3129
]
3131
3130
)
3132
-
3133
- :SCHEDULED_MANUAL_RUN ->
3131
+ end ,
3132
+ SCHEDULED_RUN_WITH_PROMOTION: fn ->
3133
+ pipeline (
3134
+ triggerer: [
3135
+ wf_triggered_by: WfTriggeredBy . value ( :SCHEDULE ) ,
3136
+ ppl_triggered_by: PplTriggeredBy . value ( :PROMOTION )
3137
+ ]
3138
+ )
3139
+ end ,
3140
+ SCHEDULED_MANUAL_RUN: fn ->
3134
3141
pipeline (
3135
3142
triggerer: [
3136
3143
wf_triggered_by: WfTriggeredBy . value ( :MANUAL_RUN )
3137
3144
]
3138
3145
)
3139
-
3140
- : PIPELINE_PARTIAL_RERUN ->
3146
+ end ,
3147
+ PIPELINE_PARTIAL_RERUN: fn ->
3141
3148
pipeline (
3142
3149
triggerer: [
3143
3150
ppl_triggered_by: PplTriggeredBy . value ( :PARTIAL_RE_RUN )
3144
3151
]
3145
3152
)
3146
-
3147
- : MANUAL_PROMOTION ->
3153
+ end ,
3154
+ MANUAL_PROMOTION: fn ->
3148
3155
pipeline (
3149
3156
triggerer: [
3150
3157
ppl_triggered_by: PplTriggeredBy . value ( :PROMOTION )
3151
3158
]
3152
3159
)
3153
-
3154
- : AUTO_PROMOTION ->
3160
+ end ,
3161
+ AUTO_PROMOTION: fn ->
3155
3162
pipeline (
3156
3163
triggerer: [
3157
3164
ppl_triggered_by: PplTriggeredBy . value ( :AUTO_PROMOTION )
3158
3165
]
3159
3166
)
3160
- end
3167
+ end
3168
+ }
3169
+
3170
+ db [ trigger_type ] . ( )
3161
3171
end
3162
3172
end
You can’t perform that action at this time.
0 commit comments