@@ -468,23 +468,15 @@ pipeline {
468468 steps{
469469 sh(
470470 label : ' Create virtual environment' ,
471- script : ''' python3 -m venv bootstrap_uv
472- bootstrap_uv/bin/pip install --disable-pip-version-check uv
473- bootstrap_uv/bin/uv venv venv
474- UV_PROJECT_ENVIRONMENT=./venv bootstrap_uv/bin/uv sync --frozen --group ci --no-install-project
475- bootstrap_uv/bin/uv pip install --python=./venv/bin/python uv
476- rm -rf bootstrap_uv
477- '''
471+ script : ' uv sync --frozen --group ci --no-install-project'
478472 )
479473 }
480474 }
481475 stage(' Installing project as editable package' ){
482476 steps{
483477 sh(
484478 label : ' Install package in development mode' ,
485- script : ''' . ./venv/bin/activate
486- CFLAGS="--coverage" uv pip install -e .
487- '''
479+ script : ' CFLAGS="--coverage" uv pip install -e .'
488480 )
489481 }
490482 }
@@ -494,7 +486,7 @@ pipeline {
494486 steps {
495487 sh(
496488 label : ' Building docs' ,
497- script : ' ./venv/bin/ uv run sphinx-build -b html docs/source build/docs/html -d build/docs/doctrees -v -w logs/build_sphinx.log -W --keep-going'
489+ script : ' uv run sphinx-build -b html docs/source build/docs/html -d build/docs/doctrees -v -w logs/build_sphinx.log -W --keep-going'
498490 )
499491 }
500492 post{
@@ -530,9 +522,8 @@ pipeline {
530522 steps{
531523 tee(' logs/cmake-build.log' ){
532524 sh(label : ' Compiling CPP Code' ,
533- script : ''' . ./venv/bin/activate
534- conan install conanfile.py -of build/cpp --build=missing -pr:b=default
535- cmake --preset conan-release -B build/cpp \
525+ script : ''' uv run conan install conanfile.py -of build/cpp --build=missing -pr:b=default
526+ uv run cmake --preset conan-release -B build/cpp \
536527 -Wdev \
537528 -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
538529 -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true \
@@ -541,7 +532,7 @@ pipeline {
541532 -DCMAKE_CXX_FLAGS="-fno-inline -fno-omit-frame-pointer -fprofile-arcs -ftest-coverage -Wall -Wextra" \
542533 -DMEMORYCHECK_COMMAND=$(which drmemory) \
543534 -DMEMORYCHECK_COMMAND_OPTIONS="-check_uninit_blacklist libopenjp2.so.7"
544- build-wrapper-linux --out-dir build/build_wrapper_output_directory cmake --build build/cpp -j $(grep -c ^processor /proc/cpuinfo) --config Debug
535+ build-wrapper-linux --out-dir build/build_wrapper_output_directory uv run cmake --build build/cpp -j $(grep -c ^processor /proc/cpuinfo) --config Debug
545536 '''
546537 )
547538 }
@@ -566,9 +557,8 @@ pipeline {
566557 stage(' C++ Unit Tests' ){
567558 steps{
568559 sh(label : ' Running CTest' ,
569- script : ''' . ./venv/bin/activate
570- cd build/cpp
571- ctest --output-on-failure --no-compress-output -T Test
560+ script : ''' cd build/cpp
561+ uv run ctest --output-on-failure --no-compress-output -T Test
572562 '''
573563 )
574564 }
@@ -591,9 +581,7 @@ pipeline {
591581 )
592582 ]
593583 )
594- sh ''' . ./venv/bin/activate
595- mkdir -p reports && gcovr --filter src/uiucprescon/imagevalidate --exclude-directories build/cpp/_deps/ --print-summary --xml -o reports/coverage_cpp.xml
596- '''
584+ sh ' mkdir -p reports && uv run gcovr --filter src/uiucprescon/imagevalidate --exclude-directories build/cpp/_deps/ --print-summary --xml -o reports/coverage_cpp.xml'
597585 stash(includes : ' reports/coverage_cpp.xml' , name : ' CPP_COVERAGE_REPORT' )
598586 }
599587 }
@@ -643,9 +631,7 @@ pipeline {
643631 timeout(15 ){
644632 sh(
645633 label : ' Running memcheck' ,
646- script : ''' . ./venv/bin/activate
647- (cd build/cpp && ctest -T memcheck -j $(grep -c ^processor /proc/cpuinfo) )
648- '''
634+ script : ' (cd build/cpp && uv run ctest -T memcheck -j $(grep -c ^processor /proc/cpuinfo) )'
649635 )
650636 }
651637 }
@@ -666,7 +652,7 @@ pipeline {
666652 sh(
667653 label : ' Running Pytest' ,
668654 script :''' mkdir -p reports/coverage
669- ./venv/bin/ uv run coverage run --parallel-mode --source=src -m pytest --junitxml=reports/pytest.xml --integration
655+ uv run coverage run --parallel-mode --source=src -m pytest --junitxml=reports/pytest.xml --integration
670656 '''
671657 )
672658 }
@@ -681,7 +667,7 @@ pipeline {
681667 steps {
682668 catchError(buildResult : ' SUCCESS' , message : ' Doctest found issues' , stageResult : ' UNSTABLE' ) {
683669 sh( label : ' Running Doctest' ,
684- script : ''' ./venv/bin/ uv run coverage run --parallel-mode --source=src -m sphinx -b doctest docs/source build/docs -d build/docs/doctrees -v
670+ script : ''' uv run coverage run --parallel-mode --source=src -m sphinx -b doctest docs/source build/docs -d build/docs/doctrees -v
685671 mkdir -p reports
686672 mv build/docs/output.txt reports/doctest.txt
687673 '''
@@ -700,7 +686,7 @@ pipeline {
700686 sh(
701687 label : ' Running Mypy' ,
702688 script : ''' mkdir -p logs
703- ./venv/bin/ uv run mypy -p uiucprescon.imagevalidate --html-report reports/mypy/html > logs/mypy.log
689+ uv run mypy -p uiucprescon.imagevalidate --html-report reports/mypy/html > logs/mypy.log
704690 '''
705691 )
706692 }
@@ -731,10 +717,10 @@ pipeline {
731717 post{
732718 always{
733719 sh(label : ' combining coverage data' ,
734- script : ''' ./venv/bin/ uv run coverage combine
735- ./venv/bin/ uv run coverage xml -o ./reports/coverage-python.xml
736- ./venv/bin/ uv run gcovr --filter src/uiucprescon/imagevalidate --exclude-directories build/cpp/_deps/ --print-summary --xml -o reports/coverage-c-extension.xml
737- '''
720+ script : ''' uv run coverage combine
721+ uv run coverage xml -o ./reports/coverage-python.xml
722+ uv run gcovr --filter src/uiucprescon/imagevalidate --exclude-directories build/cpp/_deps/ --print-summary --xml -o reports/coverage-c-extension.xml
723+ '''
738724 )
739725 recordCoverage(tools : [[parser : ' COBERTURA' , pattern : ' reports/coverage*.xml' ]])
740726 }
@@ -768,8 +754,8 @@ pipeline {
768754 sh(
769755 label : ' Preparing c++ coverage data available for SonarQube' ,
770756 script : """ mkdir -p build/coverage
771- find ./build -name '*.gcno' -exec gcov {} -p --source-prefix=${ WORKSPACE} / \\ ;
772- mv *.gcov build/coverage/
757+ find ./build -name '*.gcno' -exec gcov {} -p --source-prefix=${ WORKSPACE} / \\ ;
758+ mv *.gcov build/coverage/
773759 """
774760 )
775761 milestone 1
@@ -779,12 +765,12 @@ pipeline {
779765 if (env. CHANGE_ID ){
780766 sh(
781767 label : ' Running Sonar Scanner' ,
782- script : " ./venv/bin/ uv run --isolated --group ci pysonar -t \$ token -Dsonar.projectVersion=\$ VERSION -Dsonar.buildString=\" ${ env.BUILD_TAG} \" -Dsonar.pullrequest.key=${ env.CHANGE_ID} -Dsonar.pullrequest.base=${ env.CHANGE_TARGET} -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=\$ (grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory"
768+ script : " uv run pysonar -t \$ token -Dsonar.projectVersion=\$ VERSION -Dsonar.buildString=\" ${ env.BUILD_TAG} \" -Dsonar.pullrequest.key=${ env.CHANGE_ID} -Dsonar.pullrequest.base=${ env.CHANGE_TARGET} -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=\$ (grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory"
783769 )
784770 } else {
785771 sh(
786772 label : ' Running Sonar Scanner' ,
787- script : " ./venv/bin/ uv run --isolated --group ci pysonar -t \$ token -Dsonar.projectVersion=\$ VERSION -Dsonar.buildString=\" ${ env.BUILD_TAG} \" -Dsonar.branch.name=${ env.BRANCH_NAME} -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=\$ (grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory"
773+ script : " uv run pysonar -t \$ token -Dsonar.projectVersion=\$ VERSION -Dsonar.buildString=\" ${ env.BUILD_TAG} \" -Dsonar.branch.name=${ env.BRANCH_NAME} -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=\$ (grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory"
788774 )
789775 }
790776 }
@@ -817,6 +803,7 @@ pipeline {
817803 cleanup{
818804 cleanWs(
819805 patterns : [
806+ [pattern : ' .venv/' , type : ' INCLUDE' ],
820807 [pattern : ' venv/' , type : ' INCLUDE' ],
821808 [pattern : ' logs/' , type : ' INCLUDE' ],
822809 [pattern : ' reports' , type : ' INCLUDE' ],
0 commit comments