Hi Auto Team,

I've read the CI related wiki page at 
https://wiki.opnfv.org/display/AUTO/CI+for+Auto and I would like to discuss 
with you a few thoughts based on my experience with CI from OPNFV vswitchperf 
project.


  *   I agree, that a dedicated POD should be reserved for Auto CI. Based on 
the length of the job execution and the content of VERIFY & MERGE jobs, it 
might be required to introduce an additional (2nd) POD in the future. I would 
prefer a bare metal POD to virtual one to simplify the final setup and thus 
improve its robustness.
  *   Based on the configuration, daily jobs can be triggered daily or "daily 
if there was any commit since the last CI run" (pollSCM trigger). The second 
setup can easy the load at CI POD - useful in case that POD is shared among 
several projects or jobs, e.g. more compute power is left for VERIFY/MERGE 
jobs. I suppose that in case of Auto the frequency will be really daily to 
constantly verify OPNFV & ONAP (master branch) functionality even if Auto 
repository was not modified. In case of stable release it doesn't make sense to 
run it on daily basis as OPNFV & ONAP versions will be fixed.
  *   I agree with the split of functionality between job definition yaml file 
(in releng repo) and real job "body" inside a Auto repo. This will add a 
flexibility to the job configuration and it will also allow us to verify new 
changes as part of verify job during review process before the changes are 
merged. For example, VSPERF project uses a CI related script 
ci/build-vsperf.sh, which based on the parameter executes daily, verify or 
merge job actions. This script is then called from jenkins yaml file 
(jjb/vswitchperf/vswitchperf.yaml) with appropriate parameter.
  *   In case of auto CI, it might be useful to split CI job into the set of 
dependent jobs, where following job will be executed only in case that previous 
job has succeeded. This will simplify analysis of job failures as it will be 
visible for the first sight if the failure is caused by Auto TCs or by platform 
installers. The history of these jobs will give us a simple overview of 
"sub-jobs" stability.

E.g.
    auto-daily-master
        |---> auto-install-opnfv
             |----> auto-install-onap
                  |-----> auto-daily-tests

example 2:
      auto-verify-master
        |---> auto-install-opnfv
             |----> auto-install-onap
                  |-----> auto-verify
                         code validation... OK
                         doc validation .... OK
                         sanity TC        .... OK

  *   It might be useful to prepare some output filtering. Otherwise it would 
be difficult to read the jenkins job  console log during analysis of CI run 
(especially a failure). It means to suppress console output of successful steps 
or tests and print only simplified results (as shown in auto-verify example 
above). This approach expects, that full logs are either accessible (i.e. kept 
for a while) at POD or dumped into jenkins job console output in case that 
error is detected.
  *   there are three basic job types used in OPNFV - DAILY, VERIFY (triggered 
by gerrit for every pushed patch or its change) and MERGE (triggered by gerrit 
after the merge of the patch). I suppose that in case of AUTO, VERIFY & MERGE 
jobs can share the content.
  *   Do you plan to store any artifacts "generated" by CI job into OPNFV 
artifactory? For example, vswitchperf is pushing results into OPNFV results 
database (I've seen, that AUTO is also going to push to results DB ) and after 
that it stores appropriate log files and test report into artifacts.opnfv.org. 
Does it make sense to store logs from OPNFV/ONAP installation or execution of 
Auto TCs into artifactory too?
  *   It might be useful to easily switch/test different OPNFV/ONAP versions. 
For example a "master" CI script can import a versions.sh file where 
user/tester can specify OPNFV and ONAP branches or commit IDs to be used.
  *   Analogically to previous point, also the OPNFV installer and ONAP 
deployment methods can be specified in the (same?) file.

Please consider these thoughts as an "outsider" point of view at Auto CI, as 
I'm new to the Auto project. It is highly possible that some of these points 
were already discussed or even solved already. In that case please don't 
hesitate to point out the sources I should check. Based on the discussion, I'll 
take care about CI auto wiki page updates, if it will be needed.

Thank you,
Martin
_______________________________________________
opnfv-tech-discuss mailing list
opnfv-tech-discuss@lists.opnfv.org
https://lists.opnfv.org/mailman/listinfo/opnfv-tech-discuss

Reply via email to