Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9311854
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
View Options
diff --git a/jobs/templates/swh-pipeline.yaml b/jobs/templates/swh-pipeline.yaml
index 8f7d7eb..5926158 100644
--- a/jobs/templates/swh-pipeline.yaml
+++ b/jobs/templates/swh-pipeline.yaml
@@ -1,169 +1,170 @@
- job-template:
name: "{name}/tests"
+ display-name: "master branch"
project-type: pipeline
triggers:
- timed: '@daily'
sandbox: true
auth-token: 'ph4br1cat0r'
properties:
- build-discarder:
num-to-keep: 20
parameters:
- git-parameter:
name: REVISION
type: PT_REVISION
defaultValue: master
description: Git revision to build.
- string:
name: PHID
description: PHID of the Phabricator target object on which results will be reported.
- string:
name: PYPI
description: |
PYPI registry to publish to when built revision is a tag. There
must exists a usernamePassword credential object with that name.
The publication endpoint is built as https://$PYPI/legagy/
default: test.pypi.org
- bool:
name: FORCE_UPLOAD
default: false
description: |
Force uploading python packages on the chosen PYPI registry.
dsl: |
pipeline {{
agent {{ label 'swh-tox' }}
environment {{
PHAB_CONDUIT_URL = 'https://forge.softwareheritage.org/api/'
}}
stages {{
stage('Checkout') {{
steps {{
withCredentials([
string(credentialsId: 'swh-public-ci',
variable: 'PHAB_CONDUIT_TOKEN')]) {{
sh '''
if [ -n "$PHID" ]; then
python3 -m pyarcanist send-message work $PHID
fi
'''
}}
checkout([$class: 'GitSCM',
branches: [[name: "${{params.REVISION}}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
gitTool: 'Default',
submoduleCfg: [],
userRemoteConfigs: [[url: 'https://forge.softwareheritage.org/source/{display-name}.git']]
])
}}
}}
stage('Static analysis') {{
steps {{
echo 'flake8'
sh '''python3 -m detox -e flake8'''
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
'''
}}
}} // static analysis
stage('Unit tests') {{
options {{
timeout(time: 5, unit: 'MINUTES')
}}
steps {{
sh '''
python3 -m tox -e py3 -- \
--cov-report=xml \
--junit-xml=test-results.xml
'''
}}
post {{
always {{
step([$class: 'CoberturaPublisher',
autoUpdateHealth: false,
autoUpdateStability: false,
coberturaReportFile: 'coverage.xml',
failNoReports: false,
failUnhealthy: false,
failUnstable: false,
maxNumberOfBuilds: 10,
onlyStable: false,
sourceEncoding: 'ASCII',
zoomCoverageChart: false])
// JUnit report
junit allowEmptyResults: true,
testResults: 'test-results.xml'
// disabled for now, requires the plugin Warning v5 (still in RC)
//recordIssues enabledForFailure: true,
// tools: [[pattern: '**/reports/cc_report.xml', tool: [$class: 'Ccm']]]
}}
}} // post
}} // unit tests
stage('Build') {{
steps {{
sh 'python3 setup.py sdist bdist_wheel'
}}
}}
stage('Publish') {{
when {{ anyOf {{
expression {{ return params.FORCE_UPLOAD }}
expression {{
GITTAG=sh(returnStdout: true,
script:'git describe --exact-match 2>/dev/null || true').trim()
LASTV=sh(returnStdout: true,
script:'curl -s https://${{params.PYPI}}/pypi/`python setup.py --name`/json | jq -r .info.version || true').trim()
return ! (GITTAG in ['', 'v'+LASTV])
}}
}}
}}
steps {{
withCredentials([
usernamePassword(credentialsId: "${{params.PYPI}}",
usernameVariable: 'TWINE_USERNAME',
passwordVariable: 'TWINE_PASSWORD')]) {{
sh 'python3 -m twine upload --repository-url https://${{PYPI}}/legacy/ dist/*'
}}
}}
}}
}} // stages
post {{
always {{
// Archive a few report files
archiveArtifacts allowEmptyArchive: true,
artifacts: 'reports/*,*.xml,tox*.ini',
fingerprint: true
withCredentials([
string(credentialsId: 'swh-public-ci',
variable: 'PHAB_CONDUIT_TOKEN')]) {{
withEnv(["JOBSTATUS=${{currentBuild.currentResult}}"]) {{
sh '''
if [ "$JOBSTATUS" = "SUCCESS" ]; then
MSGTYPE=pass
else
MSGTYPE=fail
fi
echo "Current job status is $JOBSTATUS -> $MGSTYPE"
if [ -n "$PHID" ]; then
python3 -m pyarcanist send-message $MSGTYPE $PHID
fi
'''
}} // withEnv
}} // withCredentials
}} // always
}} // post
}} // pipeline
diff --git a/jobs/templates/swh-tox.yaml b/jobs/templates/swh-tox.yaml
index 194ce83..923badf 100644
--- a/jobs/templates/swh-tox.yaml
+++ b/jobs/templates/swh-tox.yaml
@@ -1,47 +1,48 @@
- job-template:
name: '{name}/tox'
+ display-name: 'Phab. Diff'
node: swh-tox
auth-token: ph4br1cat0r
parameters:
- string:
name: REPO
description: PHID of the Diffusion repository
- string:
name: PHID
description: PHID of the Target object
- string:
name: DIFF_ID
description: ID of the Diff patch to apply, if any
scm:
- git:
url: https://forge.softwareheritage.org/source/{display-name}.git
wrappers:
- phabricator-differential:
apply-to-master: true
builders:
- shell: |
echo "Run tox for:"
echo " REPO=$REPO"
echo " PHID=$PHID"
echo " DIFF_ID=$DIFF_ID"
- shell: |
if (python3 -m tox -a | grep -q -e '^flake8-phab$' ); then
python3 -m tox -e flake8-phab
else
python3 -m tox -e flake8
fi
- shell: python3 -m tox --result-json tox-results.json
publishers:
- phabricator:
uberalls-enabled: false
comment-on-success: true
comment-with-console-link-on-failure: true
process-lint: true
lint-file: .phabricator-lint
lint-file-size: 1000000
- archive:
artifacts: "*.json,.coverage*,.phabricator*"
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Jul 3, 10:34 AM (2 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3272726
Attached To
rCJSWH Jenkins jobs
Event Timeline
Log In to Comment