diff --git a/.sqa/config.yml b/.sqa/config.yml new file mode 100644 index 00000000..5ba489b7 --- /dev/null +++ b/.sqa/config.yml @@ -0,0 +1,27 @@ +sqa_criteria: + qc_style: + repos: + deepaas: + container: DEEPaaS-testing + tox: + tox_file: 'tox.ini' + testenv: + - flake8 + - black + - pip-missing-reqs + qc_security: + repos: + deepaas: + container: DEEPaaS-testing + tox: + tox_file: 'tox.ini' + testenv: + - bandit + qc_doc: + repos: + eosc-perf: + container: perf-testing + tox: + tox_file: 'tox.ini' + testenv: + - docs diff --git a/.sqa/docker-compose.yml b/.sqa/docker-compose.yml new file mode 100644 index 00000000..a70c0b9f --- /dev/null +++ b/.sqa/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.6" + +services: + DEEPaaS-testing: + image: "indigodatacloud/ci-images:python3.11" + hostname: "deepaas-testing" + volumes: + - type: bind + source: ./ + target: /deepaas-testing + working_dir: /deepaas-testing diff --git a/Jenkinsfile b/Jenkinsfile old mode 100644 new mode 100755 index 511e4167..29d0ae29 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,94 +1,27 @@ #!/usr/bin/groovy -@Library(['github.com/indigo-dc/jenkins-pipeline-library@1.4.0']) _ +@Library(['github.com/indigo-dc/jenkins-pipeline-library@release/2.1.0']) _ + +def projectConfig pipeline { agent { - docker { image 'indigodatacloud/ci-images:python3.10' } - } - - environment { - dockerhub_repo = "indigodatacloud/deepaas" - dockerhub_image_id = "" + label 'docker' } stages { - stage('Code fetching') { - steps { - checkout scm - } - } - - stage('Style analysis') { + stage('SQA baseline dynamic stages') { steps { - ToxEnvRun('flake8') + script { + projectConfig = pipelineConfig() + buildStages(projectConfig) + } } post { - always { - recordIssues(tools: [flake8()]) + cleanup { + cleanWs() } } } - - stage('Unit testing coverage') { - steps { - ToxEnvRun('cover') - ToxEnvRun('cobertura') - } - // post { - // success { - // HTMLReport('cover', 'index.html', 'coverage.py report') - // CoberturaReport('**/coverage.xml') - // } - // } - } - - stage('Dependency check') { - steps { - ToxEnvRun('pip-missing-reqs') - } - } - - // stage('DockerHub delivery') { - // when { - // anyOf { - // branch 'master' - // buildingTag() - // } - // } - // agent { - // label 'docker-build' - // } - // steps { - // checkout scm - // script { - // dockerhub_image_id = DockerBuild(dockerhub_repo, - // tag: env.BRANCH_NAME) - // } - // } - // post { - // success { - // DockerPush(dockerhub_image_id) - // } - // failure { - // DockerClean() - // } - // always { - // cleanWs() - // } - // } - // } - - // stage('PyPI delivery') { - // when { - // anyOf { - // buildingTag() - // } - // } - // steps { - // PyPIDeploy('deepaas', 'indigobot-pypi') - // } - // } - } } diff --git a/tox.ini b/tox.ini index d8f4c39e..1727ba93 100644 --- a/tox.ini +++ b/tox.ini @@ -23,11 +23,6 @@ python = python3.11 skip_install = true package = deepaas -[jenkins] -python = python3.10 -skip_install = true -package = deepaas - [pytest] addopts = -p no:warnings @@ -88,8 +83,8 @@ exclude = build [testenv:flake8] -basepython = {[jenkins]python} -skip_install = {[jenkins]skip_install} +basepython = {[base]python} +skip_install = {[base]skip_install} deps = flake8>=4.0,<4.1 flake8-bugbear>=22.3,<22.4 @@ -149,6 +144,6 @@ commands = mypy --config-file mypy.ini -p {[base]package} [testenv:pip-missing-reqs] -basepython = {[jenkins]python} +basepython = {[base]python} deps = pip_check_reqs -commands=pip-missing-reqs -d --ignore-file={[jenkins]package}/tests/* {[jenkins]package} +commands=pip-missing-reqs -d --ignore-file={[base]package}/tests/* {[base]package}