|
| 1 | +NUT Quality Assurance Guide |
| 2 | +=========================== |
| 3 | +:Author: Jim_Klimov |
| 4 | +:Author Initials: JK |
| 5 | + |
| 6 | +WARNING: This is a Work In Progress document. |
| 7 | + |
| 8 | +Abstract |
| 9 | +-------- |
| 10 | + |
| 11 | +The aim of this document is to describe the different ways we ensure and |
| 12 | +maintain the source code quality of Network UPS Tools, its portability to |
| 13 | +various platforms, and non-regression. |
| 14 | + |
| 15 | +Previous NUT releases may have included parts of this documentation in the |
| 16 | +developer guide or user manual. Most of this information can be applied to |
| 17 | +both automated testing environments and local development workflows. |
| 18 | + |
| 19 | +[[nut-qa]] |
| 20 | +include::nut-qa.txt[leveloffset=+1] |
| 21 | + |
| 22 | +Code and recipe analysis |
| 23 | +------------------------ |
| 24 | + |
| 25 | +[[CI_distcheck]] |
| 26 | +GNU Autotools distcheck |
| 27 | +~~~~~~~~~~~~~~~~~~~~~~~ |
| 28 | + |
| 29 | +Static analysis by compilers |
| 30 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 31 | + |
| 32 | +[[CI_shellcheck]] |
| 33 | +Shell script checks |
| 34 | +~~~~~~~~~~~~~~~~~~~ |
| 35 | + |
| 36 | +[[CI_spellcheck]] |
| 37 | +Documentation spelling checks |
| 38 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 39 | + |
| 40 | + |
| 41 | +Test automation |
| 42 | +--------------- |
| 43 | + |
| 44 | +[[CI_BUILD_SH]] |
| 45 | +The ci_build.sh script |
| 46 | +~~~~~~~~~~~~~~~~~~~~~~ |
| 47 | + |
| 48 | +Test programs in NUT codebase |
| 49 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 50 | + |
| 51 | +[[NIT]] |
| 52 | +NUT Integration Testing suite (NIT) |
| 53 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 54 | + |
| 55 | + |
| 56 | +[[NUTCI_farm]] |
| 57 | +Continuous Integration (NUT CI farm) |
| 58 | +------------------------------------ |
| 59 | + |
| 60 | +Multiple FOSS CI providers and technologies |
| 61 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 62 | + |
| 63 | +Jenkins is the way |
| 64 | +~~~~~~~~~~~~~~~~~~ |
| 65 | + |
| 66 | +* https://stories.jenkins.io/user-story/jenkins-is-the-way-for-networkupstools/ |
| 67 | +* https://github.com/jenkins-infra/stories/blob/main/src/user-story/jenkins-is-the-way-for-networkupstools/index.yaml |
| 68 | +
|
| 69 | +[[Jenkins-Dynamatrix-Library]] |
| 70 | +The jenkins-dynamatrix library |
| 71 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 72 | + |
| 73 | +[[Jenkins-Dynamatrix-Pipeline]] |
| 74 | +Jenkinsfile-dynamatrix cases in NUT sources |
| 75 | +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 76 | + |
| 77 | +[[CI_VM_DigitalOcean]] |
| 78 | +Custom NUT CI farm build agents: VMs on DigitalOcean |
| 79 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 80 | + |
| 81 | +* Installation of VMs on Digital Ocean |
| 82 | + - Pick details from https://github.com/networkupstools/nut/issues/2192 |
| 83 | +
|
| 84 | +[[CI_LXC]] |
| 85 | +Custom NUT CI farm build agents: LXC containers |
| 86 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 87 | + |
| 88 | +include::ci-farm-lxc-setup.txt[leveloffset=+2] |
| 89 | + |
| 90 | +[[Config_Prereqs]] |
| 91 | +NUT build prerequisites |
| 92 | +----------------------- |
| 93 | + |
| 94 | +include::config-prereqs.txt[leveloffset=+2] |
0 commit comments