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