github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/f0116.yml (about) 1 version: 1.0.0 2 3 vars: 4 cached_functests_dir: ./build/functests 5 cases_dir: ./build/cases 6 log_dir: ./reflogs 7 content_dir: ./content 8 content_src_dir: ./content-src 9 10 dvars: 11 - name: upproj_dir 12 value: '{{ env "UP_PROJ_DIR" }}' 13 flags: [vvv] 14 15 - name: src_functests_dir 16 value: '{{.upproj_dir}}/tests/functests' 17 18 - name: ref_dir 19 value: '{{.cached_functests_dir}}' 20 21 - name: rendered_log_dir 22 value: '{{.cases_dir}}/logs' 23 24 25 tasks: 26 - 27 name: build 28 desc: build the showcases automatically 29 task: 30 31 - 32 func: shell 33 desc: prepare all the self documented cases 34 do: 35 - 'rm -rf {{.content_dir}}' 36 - 'mkdir -p {{.content_dir}}' 37 - rm -rf ./build 38 - mkdir -p ./build 39 - 'cp -rf {{.src_functests_dir}} {{.cached_functests_dir}}' 40 - 'cd {{.cached_functests_dir}}; ls c????.yml' 41 reg: cases 42 43 - func: cmd 44 desc: debug 45 do: 46 - 47 name: print 48 cmd: '{{.cases}}' 49 50 - func: cmd 51 desc: get the case list object 52 dvars: 53 - name: void 54 value: '{{ .cases | splitLines |reg "caselist" }}' 55 56 # - func: cmd 57 # desc: show the caselist available 58 # do: 59 # - 60 # name: print 61 # cmd: 'cases: {{.caselist}}' 62 63 - 64 func: shell 65 desc: prepare the directory for the already documented cases 66 do: 67 - rm -rf {{.cases_dir}} 68 - mkdir -p {{.cases_dir}} 69 - mkdir -p {{.rendered_log_dir}} 70 71 - 72 func: call 73 desc: filter out all cases have already got documents 74 do: 75 - process_case 76 # loop: "caselist" 77 loop: 78 - c0005.yml 79 80 - 81 func: shell 82 desc: copy generated docs to publish dir 83 do: 84 - rm -rf {{.content_dir}}/cases 85 - 'cp -rf {{.cases_dir}}/* {{.content_dir}}/' 86 - 'cp -rf {{.content_src_dir}}/* {{.content_dir}}/' 87 - 'cp -rf {{.log_dir}} {{.content_dir}}/' 88 89 90 - func: shell 91 desc: debug 92 do: 93 - 'echo "=====================" >> debug' 94 - 'echo "=====================" >> debug1' 95 96 - 97 name: process_case 98 task: 99 100 - 101 func: cmd 102 do: 103 - name: reg 104 cmd: 105 name: casefilename 106 value: '{{.loopitem}}' 107 108 - name: reg 109 cmd: 110 name: casename 111 value: '{{.casefilename | replace ".yml" ""}}' 112 113 - name: print 114 cmd: 'processing {{.casefilename}}' 115 116 - name: readFile 117 desc: read yml file 118 cmd: 119 filename: '{{.casefilename}}' 120 dir: '{{.cached_functests_dir}}' 121 reg: caseyml 122 123 - name: print 124 cmd: | 125 yml file content: 126 {{.caseyml}} 127 128 - name: query 129 cmd: 130 ymlkey: caseyml 131 path: doc_meta. 132 reg: docyml 133 flags: [ymlOnly] 134 135 - 136 func: call 137 desc: add casename and log_dir into data model 138 do: data_enrich 139 if: '{{ gt (.docyml|len) 0 }}' 140 141 - 142 func: cmd 143 do: 144 - name: ymlDelete 145 cmd: 146 ymlfile: '{{.casefilename}}' 147 refdir: '{{.ref_dir}}' 148 path: doc_meta 149 inplace: true 150 151 - name: ymlDelete 152 cmd: 153 ymlfile: '{{.casefilename}}' 154 refdir: '{{.ref_dir}}' 155 path: notes 156 inplace: true 157 158 - name: readFile 159 desc: review if the file content is correct 160 cmd: 161 filename: '{{.casefilename}}' 162 dir: '{{.ref_dir}}' 163 reg: final_yml 164 165 - name: print 166 desc: show the modified yml content 167 cmd: '{{.final_yml}}' 168 169 - 170 func: cmd 171 dvars: 172 - name: casedoc 173 value: '{{.docyml}}' 174 expand: 2 175 flags: [toObj, reg] 176 177 - 178 func: call 179 desc: create sub folders and template the docment 180 do: generate_doc 181 if: '{{ gt (.casedoc|len) 0 }}' 182 183 184 - 185 name: data_enrich 186 task: 187 - func: cmd 188 do: 189 - name: ymlWrite 190 cmd: 191 ymlstr: '{{.docyml}}' 192 path: casename 193 value: '{{.casename}}' 194 reg: docyml 195 - name: ymlWrite 196 cmd: 197 ymlstr: '{{.docyml}}' 198 path: ref_dir 199 value: '{{.ref_dir}}' 200 reg: docyml 201 - name: ymlWrite 202 cmd: 203 ymlstr: '{{.docyml}}' 204 path: main_yml_ref_file 205 value: '{{.ref_dir}}/{{.casefilename}}' 206 reg: docyml 207 - name: ymlWrite 208 cmd: 209 ymlstr: '{{.docyml}}' 210 path: main_log_ref_file 211 value: '{{.log_dir}}/{{.casename}}_v.log' 212 reg: docyml 213 # - name: ymlWrite 214 # cmd: 215 # ymlstr: '{{.docyml}}' 216 # path: page_weight 217 # value: '{{ .casename |replace "c" "" |atoi}}' 218 # reg: docyml 219 # - name: ymlWrite 220 # cmd: 221 # ymlstr: '{{.docyml}}' 222 # path: log_dir 223 # nodevalue: '{{.log_dir}}' 224 # reg: docyml 225 226 - name: print 227 cmd: | 228 ---------- docyml content--------- 229 {{.docyml}} 230 231 # - name: exit 232 - 233 name: generate_doc 234 task: 235 236 - func: shell 237 do: 238 - 'echo "casename: {{.casename}} - folder: {{.casedoc_object.folder}}" >> debug' 239 240 - func: cmd 241 do: 242 - name: reg 243 cmd: 244 name: target_dir 245 value: '{{.cases_dir}}/{{.casedoc_object.folder}}' 246 - name: trace 247 cmd: debug ==> 248 249 250 - func: shell 251 do: 252 - 'echo "casename: {{.casename}} - target: {{.target_dir}}" >> debug' 253 254 - func: cmd 255 do: 256 - name: trace 257 cmd: <== debug 258 259 - func: shell 260 do: 261 - 'mkdir -p {{.target_dir}}' 262 263 - 264 func: cmd 265 do: 266 - name: printObj 267 cmd: casedoc_object 268 269 - name: print 270 desc: casedoc length 271 cmd: '{{ .casedoc|len }}' 272 273 - name: template 274 desc: generate the document 275 cmd: 276 src: ./templates/doc.template 277 dest: '{{.target_dir}}/{{.casename}}.md' 278 datakey: casedoc_object 279 280 - 281 func: call 282 do: generate_log_pages 283 loop: 284 - v 285 - vv 286 - vvv 287 - vvvv 288 - vvvvv 289 - vvvvvv 290 - vvvvvvv 291 292 - 293 name: generate_log_pages 294 task: 295 - 296 func: cmd 297 dvars: 298 - name: logidinumber 299 value: '{{ substr 1 5 .casename | atoi |mul 10| add 10000 |add .loopindex }}' 300 flags: [vvv,] 301 302 - name: logtemplate 303 value: | 304 title: {{.casename}}_{{.loopitem}} 305 weight: {{.logidinumber}} 306 loglevle: {{.loopitem}} 307 relatedlink: ../../{{.casedoc_object.folder}}/{{.casename}} 308 log_ref_file: {{.log_dir}}/{{.casename}}_{{.loopitem}}.log 309 flags: 310 - toObj 311 # - vvv 312 do: 313 - name: print 314 cmd: '{{.logtemplate}}' 315 - name: print 316 cmd: '{{.loopitem}}' 317 # - name: exit 318 319 - name: template 320 desc: generate the log 321 cmd: 322 src: ./templates/log.template 323 dest: '{{.rendered_log_dir}}/{{.casename}}_{{.loopitem}}.md' 324 datakey: logtemplate_object