From ac37655ca8636c982bcb27be7f1c6d162e8f23e9 Mon Sep 17 00:00:00 2001 From: Tomek Mrugalski Date: Thu, 16 Mar 2023 13:33:35 +0100 Subject: [PATCH] [#2760] Devel guide updated - described github CI - described gitlab CI briefly - added a note about Jenkins --- doc/devel/Makefile.am | 1 + doc/devel/mainpage.dox | 14 ++++++++---- doc/devel/qa.dox | 52 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 doc/devel/qa.dox diff --git a/doc/devel/Makefile.am b/doc/devel/Makefile.am index 9b740be71b..687b9c1a63 100644 --- a/doc/devel/Makefile.am +++ b/doc/devel/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST += cross-compile.dox EXTRA_DIST += doc.dox EXTRA_DIST += fuzz.dox EXTRA_DIST += mainpage.dox +EXTRA_DIST += qa.dox EXTRA_DIST += terminology.dox EXTRA_DIST += unit-tests.dox diff --git a/doc/devel/mainpage.dox b/doc/devel/mainpage.dox index 8d164cbfbb..a3331805d6 100644 --- a/doc/devel/mainpage.dox +++ b/doc/devel/mainpage.dox @@ -36,16 +36,21 @@ * a patch to ISC and what happens next. Please read it if you are considering * sending us any code. * - * @section buildingKeaWithUnitTests Building Kea with Unit tests + * @section qa Quality Assurance + * - @subpage qaIntro * - @subpage unitTests * - @subpage unitTestsEnvironmentVariables * - @subpage unitTestsSanitizers * - @subpage unitTestsDatabaseConfig * - @subpage unitTestsSysrepo * - @subpage writingShellScriptsAndTests - * - * @section performance Performance - * - @subpage perfdhcpInternals + * - @subpage Performance + * - @subpage perfdhcpInternals + * - @subpage fuzzer + * - @subpage qa + * - @subpage ciGithub + * - @subpage ciGitlab + * - @subpage ciJenkins * * @section hooksFramework Hooks Framework * - @subpage hooksdgDevelopersGuide @@ -148,7 +153,6 @@ * - @subpage logNotes * - @subpage LoggingApi * - @subpage SocketSessionUtility - * - @subpage fuzzer * - @subpage crossCompile * - @subpage docs * - Documentation warnings and errors diff --git a/doc/devel/qa.dox b/doc/devel/qa.dox new file mode 100644 index 0000000000..d82c4e7fcf --- /dev/null +++ b/doc/devel/qa.dox @@ -0,0 +1,52 @@ +// Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC") +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +/** +@page qaIntro Quality Assurance in Kea + +This is only a brief excerpt about some QA systems used at ISC. For more +information, please refer to the DHCP QA department. + +@section ciGithub Running CI pipeline on Github + +While our primary environment for running CI pipeline is Jenkins hosted on AWS, +there are some tools that are only available on github. One of such tools is +CodeQL. CodeQL is a static analysis tool that can be used to find security +vulnerabilities in the code. It is a part of Github Advanced Security suite. +Github Advanced Security suite is available for free for open source projects. + +The job is defined in `.github/workflows/codeql.yml` file. It is configured +to run once per week on `master` and `ci` branches. Sadly, it requires Kea +compilation. With the runners provided on github having only 2 CPUs, it's +a slow process. But we don't care that much - we get the results once per +week. The results are available in the `Security` tab of the repository +(see https://github.com/isc-projects/kea/security). This tab is only visible to +logged in members of the isc-projects organization. + +@section ciGitlab Running CI pipeline on Gitlab + +There are several jobs configure on gitlab CI: + +- shellcheck +- danger +- dhcpdb_create-upgrade-consistency +- duplicate-includes +- missing-api-commands +- missing-config-h-include +- missing-git-attribute +- sast-analyzer +- flawfinder-sast + +The pipeline can be inspected and configure here: +https://gitlab.isc.org/isc-projects/kea/-/ci/editor + +@section ciJenkins Running CI pipeline on Jenkins + +Jenkins is the primary CI environment. It is hosted on AWS. For details, +see internal QA-DHCP wiki, ask on QA channel on mattermost or take a look at the +internal `qa-dhcp` repository. + +*/ -- 2.47.2