indigo-dc / jenkins-pipeline-library

Jenkins pipeline library with common functionalities for CI/CD environments, mainly targeted for the implementation of the SQA baseline requirements from https://indigo-dc.github.io/sqa-baseline/
Apache License 2.0
11 stars 6 forks source link

Decouple config.yaml definition from JePL parser #188

Open samuelbernardolip opened 2 years ago

samuelbernardolip commented 2 years ago

Improve current architecture to decouple JePL internal logic from the configuration definition. Main goal of JePL is to manage all logic of generating the dynamic pipeline over Jenkins, prepare the required environments and do the execution of the required actions. There will be a base schema translating the JePL core parser definitions and an interface for exposing the supported functions from JePL parser. Library clients will need to implement the interface and submit a valid configuration file that should pass the base schema requirements. The base schema is extended by a schema from the client implementation, allowing to adapt the business logic to the pipeline, that could be tested by jpl-validator or any other validator provided by the client. An example of that implementation concerns current SQAaaS QAA definition that is composed by the SQAaaS parser that use JePL interface and also define a schema to validate the config.yaml file, currently as part of jpl-validator.