Commit f717c21
committed
refactor: add workflow writer interface
Introduced WorkflowWriter interface to decouple workflow generation
from filesystem operations. Previously, githubWorkflow.Persist()
directly wrote files, making unit tests require filesystem I/O.
Now, Export() accepts a WorkflowWriter, enabling tests to verify
YAML generation in-memory using BufferWriter while production code
uses fileWriter for actual file operations.
Moved feature flag check from runtime to command registration,
preventing the subcommand from appearing when feature is disabled
rather than failing during execution.
Reorganized tests into unit tests (mocked I/O) and integration
tests (real filesystem).
Additional changes:
- Made workflow types private (githubWorkflow, job, step, etc)
- Renamed *Option constants to *Flag for consistency
- Corrected GitHub capitalization throughout codebase
- Added MockLoaderSaver to common package for test reuse
Issue SRVOCF-744
Signed-off-by: Stanislav Jakuschevskij <sjakusch@redhat.com>1 parent bf1bbe2 commit f717c21
File tree
12 files changed
+366
-316
lines changed- cmd
- ci
- common
- docs/reference
12 files changed
+366
-316
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
| 12 | + | |
14 | 13 | | |
15 | | - | |
16 | | - | |
| 14 | + | |
| 15 | + | |
17 | 16 | | |
18 | | - | |
| 17 | + | |
19 | 18 | | |
20 | 19 | | |
21 | | - | |
| 20 | + | |
22 | 21 | | |
23 | 22 | | |
24 | | - | |
| 23 | + | |
25 | 24 | | |
26 | 25 | | |
27 | | - | |
| 26 | + | |
28 | 27 | | |
29 | 28 | | |
30 | | - | |
| 29 | + | |
31 | 30 | | |
32 | 31 | | |
33 | | - | |
| 32 | + | |
34 | 33 | | |
35 | 34 | | |
36 | | - | |
| 35 | + | |
37 | 36 | | |
38 | 37 | | |
39 | | - | |
| 38 | + | |
40 | 39 | | |
41 | 40 | | |
42 | | - | |
| 41 | + | |
43 | 42 | | |
44 | 43 | | |
45 | | - | |
| 44 | + | |
46 | 45 | | |
47 | 46 | | |
48 | | - | |
| 47 | + | |
49 | 48 | | |
50 | 49 | | |
51 | 50 | | |
| |||
67 | 66 | | |
68 | 67 | | |
69 | 68 | | |
70 | | - | |
| 69 | + | |
71 | 70 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
86 | 85 | | |
87 | 86 | | |
88 | 87 | | |
89 | | - | |
| 88 | + | |
90 | 89 | | |
91 | 90 | | |
92 | 91 | | |
93 | | - | |
94 | | - | |
| 92 | + | |
| 93 | + | |
95 | 94 | | |
96 | 95 | | |
97 | 96 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | | - | |
8 | 6 | | |
9 | 7 | | |
10 | 8 | | |
11 | 9 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 10 | + | |
22 | 11 | | |
23 | | - | |
24 | | - | |
| 12 | + | |
| 13 | + | |
25 | 14 | | |
26 | 15 | | |
27 | | - | |
28 | | - | |
| 16 | + | |
| 17 | + | |
29 | 18 | | |
30 | 19 | | |
31 | 20 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 21 | + | |
45 | 22 | | |
46 | 23 | | |
47 | 24 | | |
48 | | - | |
| 25 | + | |
49 | 26 | | |
50 | | - | |
| 27 | + | |
51 | 28 | | |
52 | 29 | | |
53 | | - | |
| 30 | + | |
54 | 31 | | |
55 | 32 | | |
56 | 33 | | |
| |||
59 | 36 | | |
60 | 37 | | |
61 | 38 | | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | 39 | | |
97 | | - | |
| 40 | + | |
| 41 | + | |
98 | 42 | | |
99 | 43 | | |
100 | 44 | | |
101 | 45 | | |
102 | 46 | | |
103 | 47 | | |
104 | 48 | | |
105 | | - | |
| 49 | + | |
106 | 50 | | |
107 | 51 | | |
108 | 52 | | |
| |||
160 | 104 | | |
161 | 105 | | |
162 | 106 | | |
163 | | - | |
| 107 | + | |
164 | 108 | | |
165 | 109 | | |
166 | | - | |
| 110 | + | |
167 | 111 | | |
168 | 112 | | |
169 | 113 | | |
| |||
172 | 116 | | |
173 | 117 | | |
174 | 118 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
179 | 122 | | |
180 | 123 | | |
181 | | - | |
182 | | - | |
183 | | - | |
| 124 | + | |
| 125 | + | |
184 | 126 | | |
185 | 127 | | |
186 | | - | |
| 128 | + | |
187 | 129 | | |
188 | 130 | | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
194 | 134 | | |
195 | | - | |
196 | | - | |
197 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
198 | 139 | | |
199 | | - | |
200 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
201 | 158 | | |
202 | 159 | | |
203 | | - | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
204 | 171 | | |
205 | 172 | | |
206 | | - | |
| 173 | + | |
207 | 174 | | |
208 | 175 | | |
209 | | - | |
| 176 | + | |
210 | 177 | | |
211 | 178 | | |
212 | | - | |
| 179 | + | |
213 | 180 | | |
214 | 181 | | |
215 | | - | |
| 182 | + | |
216 | 183 | | |
217 | 184 | | |
218 | 185 | | |
| |||
224 | 191 | | |
225 | 192 | | |
226 | 193 | | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | | - | |
| 11 | + | |
11 | 12 | | |
12 | | - | |
13 | | - | |
| 13 | + | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | | - | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
21 | | - | |
22 | | - | |
| 20 | + | |
| 21 | + | |
23 | 22 | | |
0 commit comments