Jenkins CI Setup

This commit is contained in:
Jürgen Edelbluth 2022-08-26 11:50:53 +02:00
parent 4eeeef5353
commit 725dc359c7
Signed by: git.codebau.dev
GPG Key ID: F798C6B4352E8035
3 changed files with 59 additions and 5 deletions

53
.ci/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,53 @@
pipeline {
environment {
TOX_PARALLEL_NO_SPINNER = "1"
PY_COLORS = "0"
}
agent any
stages {
stage('Prepare') {
steps {
sh 'poetry install'
}
}
stage('Tox') {
matrix {
axes {
axis {
name 'PYTHON_VERSION'
values 'py38', 'py39', 'py310'
}
}
stages {
stage('Tox Test') {
options {
lock('single-tox-build')
}
steps {
sh 'poetry run tox -r -e ${PYTHON_VERSION}'
xunit checksName: '', tools: [JUnit(excludesPattern: '', pattern: 'test-reports/*.xml', stopProcessingIfError: true)]
cobertura autoUpdateStability: false, coberturaReportFile: 'coverage.xml', conditionalCoverageTargets: '70, 0, 0', failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 0, 0', maxNumberOfBuilds: 0, methodCoverageTargets: '80, 0, 0', onlyStable: false
}
}
}
}
}
}
post {
success {
cleanWs()
}
always {
withCredentials([string(credentialsId: 'jed-notification-email', variable: 'EMAIL')]) {
mail to: "${EMAIL}",
subject: "[pytest-csv-params] ${currentBuild.currentResult}: ${currentBuild.fullDisplayName}",
body: "Jenkins URL: ${env.BUILD_URL}"
}
}
}
}

6
poetry.lock generated
View File

@ -118,7 +118,7 @@ python-versions = ">=3.6"
[[package]] [[package]]
name = "charset-normalizer" name = "charset-normalizer"
version = "2.1.0" version = "2.1.1"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "dev" category = "dev"
optional = false optional = false
@ -1051,7 +1051,7 @@ python-versions = ">=3.5"
[[package]] [[package]]
name = "urllib3" name = "urllib3"
version = "1.26.11" version = "1.26.12"
description = "HTTP library with thread-safe connection pooling, file post, and more." description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "dev" category = "dev"
optional = false optional = false
@ -1059,7 +1059,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*,
[package.extras] [package.extras]
brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]] [[package]]

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "pytest-csv-params" name = "pytest-csv-params"
version = "0.4.0" version = "0.4.1"
description = "Pytest plugin for Test Case Parametrization with CSV files" description = "Pytest plugin for Test Case Parametrization with CSV files"
authors = ["Juergen Edelbluth <csv_params@jued.de>"] authors = ["Juergen Edelbluth <csv_params@jued.de>"]
license = "MIT" license = "MIT"
@ -42,7 +42,7 @@ packages = [
"pytest-csv-params" = "pytest_csv_params.plugin" "pytest-csv-params" = "pytest_csv_params.plugin"
[tool.pytest.ini_options] [tool.pytest.ini_options]
addopts = "--mypy --black --isort --pylint --pylint-rcfile=.pylintrc --cov --cov-report=term-missing --junitxml=test-reports/pytest_csv_params.xml" addopts = "--mypy --black --isort --pylint --pylint-rcfile=.pylintrc --cov --cov-report=term-missing --cov-report=xml --junitxml=test-reports/pytest_csv_params.xml"
filterwarnings=[ filterwarnings=[
"ignore:.*BlackItem.*:_pytest.warning_types.PytestDeprecationWarning", "ignore:.*BlackItem.*:_pytest.warning_types.PytestDeprecationWarning",
"ignore:.*BlackItem.*:_pytest.warning_types.PytestRemovedIn8Warning", "ignore:.*BlackItem.*:_pytest.warning_types.PytestRemovedIn8Warning",
@ -108,6 +108,7 @@ legacy_tox_ini = """
[tox] [tox]
minversion = 3.25.0 minversion = 3.25.0
envlist = clean,py38,py39,py310 envlist = clean,py38,py39,py310
isolated_build = True
[testenv] [testenv]
commands = commands =