diff --git a/jobs/templates/swh-pipeline.groovy.j2 b/jobs/templates/swh-pipeline.groovy.j2 index 774621f..c6015ec 100644 --- a/jobs/templates/swh-pipeline.groovy.j2 +++ b/jobs/templates/swh-pipeline.groovy.j2 @@ -1,142 +1,138 @@ pipeline { {% filter indent(width=2) %} {%- include 'includes/agent-docker.groovy.j2' -%} {% endfilter %} environment { PHAB_CONDUIT_URL = 'https://forge.softwareheritage.org/api/' } stages { stage('Checkout') { steps { {% filter indent(width=8) %} {%- include 'includes/create-phabricator-artifacts.groovy.j2' -%} {% endfilter %} checkout([ $class: 'GitSCM', branches: [[name: "${params.REVISION}"]], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [ [url: 'https://forge.softwareheritage.org/source/{{repo_name}}.git'], ], browser: [$class: 'Phabricator', repoUrl: 'https://forge.softwareheritage.org', repo: '{{name}}'] ]) } } {%- if phabricator_diff %} stage('Apply phabricator diff') { steps { {% filter indent(width=8) %} {%- include 'includes/script-apply-phabricator-diff.groovy.j2' -%} {% endfilter %} } } {%- endif %} - stage('Static analysis') { - parallel { - stage ('flake8') { - steps { - sh '''python3 -m tox -e flake8''' - } - } + stage ('flake8') { + steps { + sh '''python3 -m tox -e flake8''' + } + } - stage ('mypy') { - steps { - sh '''python3 -m tox -e mypy''' - } - } + stage ('mypy') { + steps { + sh '''python3 -m tox -e mypy''' + } + } - stage ('radon') { - steps { - sh ''' - mkdir -p reports - python3 -m radon raw --json swh/ > reports/raw_report.json - python3 -m radon cc --json swh/ > reports/cc_report.json - python3 -m radon mi --json swh/ > reports/mi_report.json - python3 -m radon hal --json swh/ > reports/hal_report.json - python3 -m radon cc --xml swh/ > reports/cc_report.xml - ''' - } - post { - always { - // Archive a few report files - archiveArtifacts( - allowEmptyArchive: true, - artifacts: 'reports/*', - fingerprint: true, - ) + stage ('radon') { + steps { + sh ''' + mkdir -p reports + python3 -m radon raw --json swh/ > reports/raw_report.json + python3 -m radon cc --json swh/ > reports/cc_report.json + python3 -m radon mi --json swh/ > reports/mi_report.json + python3 -m radon hal --json swh/ > reports/hal_report.json + python3 -m radon cc --xml swh/ > reports/cc_report.xml + ''' + } + post { + always { + // Archive a few report files + archiveArtifacts( + allowEmptyArchive: true, + artifacts: 'reports/*', + fingerprint: true, + ) - // Warnings NG - recordIssues( - enabledForFailure: true, - tools: [ - ccm(pattern: '**/reports/cc_report.xml'), - ], - ) - } - } + // Warnings NG + recordIssues( + enabledForFailure: true, + tools: [ + ccm(pattern: '**/reports/cc_report.xml'), + ], + ) } } - } // static analysis + } stage('Tests') { options { timeout(time: {{ timeout }}, unit: 'MINUTES') } parallel { {% filter indent(width=8) %} {%- include 'includes/stage-python-tests.groovy.j2' -%} {% endfilter %} {%- if do_cypress %} {% filter indent(width=8) %} {%- include 'includes/stage-cypress-tests.groovy.j2' -%} {% endfilter %} {%- endif %} stage('Sphinx documentation') { {% filter indent(width=6) %} {%- include 'includes/agent-docker-sphinx.groovy.j2' -%} {% endfilter %} steps { sh ''' if tox -a | grep -x sphinx >/dev/null then tox -e sphinx else echo WARNING: no sphinx environment in tox.ini fi ''' } } // sphinx doc } // parallel } // Tests stage } // stages post { always { step([$class: 'PhabricatorNotifier', commentOnSuccess: true, commentWithConsoleLinkOnFailure: true, commentFile: '.phabricator-comment', commentSize: '1000000', preserveFormatting: true, processLint: true, lintFile: '.phabricator-lint', lintFileSize: '1000000', ]) } // always cleanup { cleanWs() } } // post } // pipeline