Page MenuHomeSoftware Heritage

No OneTemporary

diff --git a/jobs/templates/includes/stage-python-tests.groovy.j2 b/jobs/templates/includes/stage-python-tests.groovy.j2
index 61563c7..6a69e1d 100644
--- a/jobs/templates/includes/stage-python-tests.groovy.j2
+++ b/jobs/templates/includes/stage-python-tests.groovy.j2
@@ -1,29 +1,35 @@
stage('Unit tests') {
options {
timeout(time: 20, unit: 'MINUTES')
}
steps {
sh '''
python3 -m tox -e $TOX_ENVIRONMENT -- \
--cov-report=xml \
--junit-xml=test-results.xml \
-v
'''
}
post {
always {
+ archiveArtifacts(
+ allowEmptyArchive: true,
+ artifacts: '*.xml',
+ fingerprint: true,
+ )
+
publishCoverage(
adapters: [
coberturaAdapter(path: 'coverage.xml'),
],
tag: 'pytest',
)
// JUnit report
junit(
allowEmptyResults: true,
testResults: 'test-results.xml',
)
}
} // post
} // unit tests
diff --git a/jobs/templates/swh-pipeline.groovy.j2 b/jobs/templates/swh-pipeline.groovy.j2
index 81e5e4b..f9ecb95 100644
--- a/jobs/templates/swh-pipeline.groovy.j2
+++ b/jobs/templates/swh-pipeline.groovy.j2
@@ -1,106 +1,108 @@
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 %}
{% filter indent(width=4) %}
{%- include 'includes/stage-apply-phabricator-diff.groovy.j2' -%}
{% endfilter %}
{%- endif %}
stage('Static analysis') {
steps {
echo 'flake8'
sh '''python3 -m tox -e flake8'''
echo 'mypy'
sh '''if python3 -m tox -a 2>/dev/null | grep -qx mypy ; then python3 -m tox -e mypy ; fi'''
echo 'radon';
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'),
],
)
}
}
} // static analysis
stage('Tests') {
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 %}
}
}
} // stages
post {
always {
- // Archive a few report files
- archiveArtifacts allowEmptyArchive: true,
- artifacts: 'reports/*,*.xml,tox*.ini',
- fingerprint: true
-
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

File Metadata

Mime Type
text/x-diff
Expires
Thu, Sep 18, 4:48 PM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3255774

Event Timeline