Speaker
Description
The SQAaaS offering is an all-purpose, fully automated, on-demand service intended to provide the ability to evaluate and certify quality attributes of source code, web services, and scientific digital assets. The key component of the offered service architecture is the SQAaaS API server, which acts as the orchestration layer managing the event-driven process of quality validation on social coding platforms with a special focus on GitHub and GitLab.
The integration of GitHub relies on specific GitHub Actions, where sqaaas-assessment-action represents the primary access point to start up quality assessments (providing JSON reports and status badges) and sqaaas-step-action controls custom checks (such as pytest or tox through specific step identifiers like qc_uni_steps). In turn, GitLab integration involves the reusable GitLab SQAaaS CI Component that is added to the .gitlab-ci.yml file and starts the assessment container image to call the SQAaaS API server, thus automating the process of assessment, trend analysis, and persistent QA reporting in the context of CI.
The primary component responsible for processing in SQAaaS is called the SQAaaS Engine (or SQAaaS runtime) and controls the execution of underlying CI/CD pipelines. In order to use computing resources from various environments, the SQAaaS Engine uses two major Jenkins execution plugins:
- Jenkins Swarm Plugin: Provides dynamic scaling for heterogeneous compute infrastructure and virtualized environments by enabling autonomous agent clients to connect to the Jenkins controller in an ad hoc manner. Thus, this configuration allows resource allocation for firewalled networks and HPC workload managers (such as Slurm) without any need for inbound connections to the controller.
- Jenkins Kubernetes Plugin: Provides elastic execution on Kubernetes clusters through direct API communication for the scheduling of ephemeral agent Pods. Each Pod runs the specific assessment job and self-destructs after finishing its task.
Therefore, the integration of SQAaaS API interfaces in GitHub and GitLab, combined with the multi-environment capabilities of the SQAaaS Engine, results in a platform-independent solution for automated software quality assessment.