Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F11023569
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
View Options
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
Details
Attached
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
Attached To
rCJSWH Jenkins jobs
Event Timeline
Log In to Comment