Page MenuHomeSoftware Heritage

No OneTemporary

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

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

Event Timeline