diff --git a/.sqa/config.yml b/.sqa/config.yml new file mode 100644 index 00000000..75e24526 --- /dev/null +++ b/.sqa/config.yml @@ -0,0 +1,15 @@ +sqa_criteria: + qc_style: + repos: + deepaas: + container: DEEPaaS-testing + tox: + tox_file: 'tox.ini' + testenv: [] + qc_security: + repos: + deepaas: + container: DEEPaaS-testing + tox: + testenv: + - bandit diff --git a/.sqa/docker-compose.yml b/.sqa/docker-compose.yml new file mode 100644 index 00000000..db9e7941 --- /dev/null +++ b/.sqa/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.6" + +services: + DEEPaaS-testing: + image: "indigodatacloud/ci-images:python3.10" + hostname: "deepaas-testing" + volumes: + - type: bind + source: ./deepaas + target: /deepaas-testing + working_dir: /deepaas-testing diff --git a/Jenkinsfile b/Jenkinsfile old mode 100644 new mode 100755 index 511e4167..f8450dca --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,94 +1,28 @@ #!/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']) _ -pipeline { - agent { - docker { image 'indigodatacloud/ci-images:python3.10' } - } +def projectConfig - environment { - dockerhub_repo = "indigodatacloud/deepaas" - dockerhub_image_id = "" - } +pipeline { + agent any stages { - stage('Code fetching') { - steps { - checkout scm - } - } - - stage('Style analysis') { + stage('SQA baseline dynamic stages') { steps { - ToxEnvRun('flake8') + script { + projectConfig = pipelineConfig( + configFile: '.sqa/config.yml', + scmConfigs: [ localBranch: true ] + ) + 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') - // } - // } - } }