From 12b5095d5d1798cd56eafbf560ccb7841e4a33b3 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 20 May 2026 15:29:44 +0200 Subject: [PATCH 01/20] change artifacts path --- ci/build_test_release.groovy | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 4f88ee17fb..46bc962c50 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -13,6 +13,10 @@ pipeline { when { expression { env.PACKAGE_URL == "" } } steps { script { + def buildstamp = new Date().format('yyyyMMddHHmmss') + echo "Buildstamp: ${buildstamp}" + echo "PRODUCT_VERSION: ${env.PRODUCT_VERSION}" + echo "RELEASE_TAG: ${env.RELEASE_TAG}" echo "JOB_BASE_NAME: ${env.JOB_BASE_NAME}" echo "WORKSPACE: ${env.WORKSPACE}" echo "OVMS_PYTHON_ENABLED: ${env.OVMS_PYTHON_ENABLED}" @@ -26,13 +30,16 @@ pipeline { windows.unit_test() windows.check_tests() def safeBranchName = env.BRANCH_NAME.replaceAll('/', '_') - def python_presence = "" + def python_suffix = "" if (env.OVMS_PYTHON_ENABLED == "1") { - python_presence = "with_python" + python_suffix = "on" } else { - python_presence = "without_python" + python_suffix = "off" } - bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip \\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms-windows-${python_presence}-${safeBranchName}-latest.zip") + def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\omvs_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" + def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" + bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") + bat(returnStatus:true, script: "cd /d ${destPath} && mklink /D latest ${artifactsPath}") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 4cd192e679a26b56e26cccbf0ca3faa7c771fa9b Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 11:21:35 +0200 Subject: [PATCH 02/20] RUN_TESTS checkbox for windows CI --- ci/build_test_release.groovy | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 46bc962c50..219a4118e3 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -27,8 +27,10 @@ pipeline { windows.install_dependencies() windows.clean() windows.build() - windows.unit_test() - windows.check_tests() + if (env.RUN_TESTS == "1") { + windows.unit_test() + windows.check_tests() + } def safeBranchName = env.BRANCH_NAME.replaceAll('/', '_') def python_suffix = "" if (env.OVMS_PYTHON_ENABLED == "1") { From 9c33395c19e739d9210c30866b30e6010ca937c8 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 11:37:27 +0200 Subject: [PATCH 03/20] fix typo, potential fix link --- ci/build_test_release.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 219a4118e3..f07f02f3c8 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -38,10 +38,10 @@ pipeline { } else { python_suffix = "off" } - def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\omvs_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" + def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "cd /d ${destPath} && mklink /D latest ${artifactsPath}") + bat(returnStatus:true, script: "cd /d ${destPath} && if exist latest rmdir latest & mklink /D latest ${buildstamp}") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From c003740be38131cdf3f0e628c7bcc8dfa9143d85 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 11:56:20 +0200 Subject: [PATCH 04/20] potential fix --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index f07f02f3c8..9a1f1e8c6f 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -41,7 +41,7 @@ pipeline { def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "cd /d ${destPath} && if exist latest rmdir latest & mklink /D latest ${buildstamp}") + bat(returnStatus:true, script: "pushd ${destPath} && if exist latest rmdir latest & mklink /D latest ${buildstamp} & popd") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 1389cb374711e66f5b757ae167da2c85374169ed Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 13:31:01 +0200 Subject: [PATCH 05/20] symlink fix --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 9a1f1e8c6f..fa40dd2f89 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -41,7 +41,7 @@ pipeline { def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "pushd ${destPath} && if exist latest rmdir latest & mklink /D latest ${buildstamp} & popd") + bat(returnStatus:true, script: "if exist \"${destPath}\\latest\" rmdir \"${destPath}\\latest\" & mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 8a66861d2a18ec404791712495c01a0954c72a9c Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 13:50:02 +0200 Subject: [PATCH 06/20] remove symlink delete --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index fa40dd2f89..e39eed657d 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -41,7 +41,7 @@ pipeline { def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "if exist \"${destPath}\\latest\" rmdir \"${destPath}\\latest\" & mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") + bat(returnStatus:true, script: "mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From ed7c52e000e8dc2bdf4b2b61f85032d0b2a0ddfa Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 21 May 2026 14:29:56 +0200 Subject: [PATCH 07/20] adding symlink delete --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index e39eed657d..fa40dd2f89 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -41,7 +41,7 @@ pipeline { def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") + bat(returnStatus:true, script: "if exist \"${destPath}\\latest\" rmdir \"${destPath}\\latest\" & mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 9df674fc65b78f7c7c9fa036179e6224a6c4329c Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Tue, 26 May 2026 10:15:39 +0200 Subject: [PATCH 08/20] symlink test --- ci/build_test_release.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index fa40dd2f89..f92f4b9bb1 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -41,7 +41,8 @@ pipeline { def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "if exist \"${destPath}\\latest\" rmdir \"${destPath}\\latest\" & mklink /D \"${destPath}\\latest\" \"${destPath}\\${buildstamp}\"") + def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") + bat(returnStatus:true, script: "ssh ${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From da4ffac40be6dd95234caf097e941dfa94368ef7 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Tue, 26 May 2026 10:32:32 +0200 Subject: [PATCH 09/20] adding user for ssh command --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index f92f4b9bb1..c2c21b9345 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -42,7 +42,7 @@ pipeline { def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") - bat(returnStatus:true, script: "ssh ${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") + bat(returnStatus:true, script: "ssh sys_k8sworker@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From f5dd27e94ee90ed5d1bd1f5507e97418ae204e6d Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Tue, 26 May 2026 11:37:25 +0200 Subject: [PATCH 10/20] tring another user --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index c2c21b9345..899bf52faa 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -42,7 +42,7 @@ pipeline { def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") - bat(returnStatus:true, script: "ssh sys_k8sworker@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") + bat(returnStatus:true, script: "ssh k8sworker@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From fe606ef0f980eca040c8f85149ea1ad645da9e1a Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 27 May 2026 11:33:29 +0200 Subject: [PATCH 11/20] sshpass --- ci/build_test_release.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 899bf52faa..eff285c96f 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -7,6 +7,7 @@ pipeline { } environment { BDBA_CREDS = credentials('BDBA_KEY') + WORKER_CREDS = credentials('sys_k8sworker') } stages { stage ("Build and test windows") { @@ -42,7 +43,7 @@ pipeline { def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") - bat(returnStatus:true, script: "ssh k8sworker@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") + bat(returnStatus:true, script: "sshpass -p \"${env.WORKER_CREDS_PSW}\" ssh ${env.WORKER_CREDS_USR}@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From b2eec7c426837b003291cd58d5e104d7f4cd9fb0 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 27 May 2026 12:11:24 +0200 Subject: [PATCH 12/20] tring to use plink for aauthentication --- ci/build_test_release.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index eff285c96f..477f6aba93 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -43,8 +43,8 @@ pipeline { def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") - bat(returnStatus:true, script: "sshpass -p \"${env.WORKER_CREDS_PSW}\" ssh ${env.WORKER_CREDS_USR}@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") - } finally { + bat(returnStatus:true, script: "plink -batch -pw \"${env.WORKER_CREDS_PSW}\" ${env.WORKER_CREDS_USR}@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") + } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() } From 4ba532426a4efdd9e15592fc8e0018224267b44b Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 27 May 2026 13:58:28 +0200 Subject: [PATCH 13/20] changing ssh to mounted directory --- ci/build_test_release.groovy | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 477f6aba93..acbb5aaf3a 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -39,11 +39,10 @@ pipeline { } else { python_suffix = "off" } - def destPath = "\\\\${env.OV_SHARE_05_IP}\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artifacts\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" + def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - def remotePath = destPath.replace("\\\\${env.OV_SHARE_05_IP}\\data", "/data").replace("\\", "/") - bat(returnStatus:true, script: "plink -batch -pw \"${env.WORKER_CREDS_PSW}\" ${env.WORKER_CREDS_USR}@${env.OV_SHARE_05_IP} \"rm -f ${remotePath}/latest && ln -sf ${remotePath}/${buildstamp} ${remotePath}/latest\"") + bat(returnStatus:true, script: "rm -f ${destPath}\\latest && ln -sf ${destPath}\\${buildstamp} ${destPath}\\latest") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From b9bb0198be395d00d5c2cbb48bd4398712aad0af Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 27 May 2026 14:02:06 +0200 Subject: [PATCH 14/20] fix --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index acbb5aaf3a..76f64d0310 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -42,7 +42,7 @@ pipeline { def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "rm -f ${destPath}\\latest && ln -sf ${destPath}\\${buildstamp} ${destPath}\\latest") + bat(returnStatus:true, script: "rm -f ${destPath}\\latest && mklink /D ${destPath}\\latest ${destPath}\\${buildstamp} ") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 0f9c9d60869a4de4f573394fe06fe971bf52a7ad Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Wed, 27 May 2026 14:48:33 +0200 Subject: [PATCH 15/20] wa on latests --- ci/build_test_release.groovy | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 76f64d0310..4bfa62cb95 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -39,10 +39,11 @@ pipeline { } else { python_suffix = "off" } + def packageName = "ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" - def artifactsPath = "${buildstamp}\\ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" - bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${artifactsPath}") - bat(returnStatus:true, script: "rm -f ${destPath}\\latest && mklink /D ${destPath}\\latest ${destPath}\\${buildstamp} ") + def latestPath = "${destPath}\\latest" + bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${buildstamp}\\${packageName}") + bat(returnStatus:true, script: "rm -f ${latestPath} && ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${latestPath}\\${packageName}") ") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From f5474e929cd0d650a90ca59f05b3da4ecfb9405b Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 28 May 2026 08:42:42 +0200 Subject: [PATCH 16/20] fix --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 4bfa62cb95..16180cb2d2 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -43,7 +43,7 @@ pipeline { def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def latestPath = "${destPath}\\latest" bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${buildstamp}\\${packageName}") - bat(returnStatus:true, script: "rm -f ${latestPath} && ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${latestPath}\\${packageName}") ") + bat(returnStatus:true, script: "rmdir /S /Q ${latestPath} && ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${latestPath}\\${packageName}") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 4aed506c5d8f8c7c77208f8d46409bf1ab562321 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 28 May 2026 10:21:29 +0200 Subject: [PATCH 17/20] fix --- ci/build_test_release.groovy | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 16180cb2d2..547e889cdb 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -40,10 +40,14 @@ pipeline { python_suffix = "off" } def packageName = "ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" + bat(returnStatus:true, script: "if not exist w:\\ net use w: \\\\10.102.76.118\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artefacts\\") def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def latestPath = "${destPath}\\latest" - bat(returnStatus:true, script: "ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${destPath}\\${buildstamp}\\${packageName}") - bat(returnStatus:true, script: "rmdir /S /Q ${latestPath} && ECHO F | xcopy /Y /E ${env.WORKSPACE}\\dist\\windows\\ovms.zip ${latestPath}\\${packageName}") + bat(returnStatus:true, script: "if not exist \"${destPath}\\${buildstamp}\" mkdir \"${destPath}\\${buildstamp}\"") + bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${destPath}\\${buildstamp}\\${packageName}\"") + bat(returnStatus:true, script: "if exist \"${latestPath}\" rmdir /S /Q \"${latestPath}\"") + bat(returnStatus:true, script: "mkdir \"${latestPath}\"") + bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${latestPath}\\${packageName}\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 6d048048366ca2dd0847f3390be1874d5ebc6dcb Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 28 May 2026 10:52:13 +0200 Subject: [PATCH 18/20] potetial fix --- ci/build_test_release.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 547e889cdb..1022f4b75f 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -40,7 +40,7 @@ pipeline { python_suffix = "off" } def packageName = "ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" - bat(returnStatus:true, script: "if not exist w:\\ net use w: \\\\10.102.76.118\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artefacts\\") + bat(returnStatus:true, script: "net use w: /delete /y 2>nul & net use w: \\\\10.102.76.118\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artefacts\\") def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def latestPath = "${destPath}\\latest" bat(returnStatus:true, script: "if not exist \"${destPath}\\${buildstamp}\" mkdir \"${destPath}\\${buildstamp}\"") From 93219c945c0b2e07f08d6ec69cd901fa06a6b913 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 28 May 2026 14:04:02 +0200 Subject: [PATCH 19/20] remove dead code --- ci/build_test_release.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index 1022f4b75f..ac81c2d76d 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -7,7 +7,6 @@ pipeline { } environment { BDBA_CREDS = credentials('BDBA_KEY') - WORKER_CREDS = credentials('sys_k8sworker') } stages { stage ("Build and test windows") { @@ -45,9 +44,11 @@ pipeline { def latestPath = "${destPath}\\latest" bat(returnStatus:true, script: "if not exist \"${destPath}\\${buildstamp}\" mkdir \"${destPath}\\${buildstamp}\"") bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${destPath}\\${buildstamp}\\${packageName}\"") + bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip.sha256\" \"${destPath}\\${buildstamp}\\${packageName}.sha256\"") bat(returnStatus:true, script: "if exist \"${latestPath}\" rmdir /S /Q \"${latestPath}\"") bat(returnStatus:true, script: "mkdir \"${latestPath}\"") bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${latestPath}\\${packageName}\"") + bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip.sha256\" \"${latestPath}\\${packageName}.sha256\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts() From 841df755f1897734958699a66f2a692b5ef57f95 Mon Sep 17 00:00:00 2001 From: Pawel Rzepecki Date: Thu, 28 May 2026 14:38:35 +0200 Subject: [PATCH 20/20] adding commit sha to package name --- ci/build_test_release.groovy | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/build_test_release.groovy b/ci/build_test_release.groovy index ac81c2d76d..41a3fec76c 100644 --- a/ci/build_test_release.groovy +++ b/ci/build_test_release.groovy @@ -14,6 +14,7 @@ pipeline { steps { script { def buildstamp = new Date().format('yyyyMMddHHmmss') + def shortCommit = bat(script: "git rev-parse --short=8 HEAD", returnStdout: true).trim().readLines().last() echo "Buildstamp: ${buildstamp}" echo "PRODUCT_VERSION: ${env.PRODUCT_VERSION}" echo "RELEASE_TAG: ${env.RELEASE_TAG}" @@ -38,17 +39,15 @@ pipeline { } else { python_suffix = "off" } - def packageName = "ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_python_${python_suffix}.zip" + def packageName = "ovms_windows_${env.PRODUCT_VERSION}_${env.RELEASE_TAG}_${shortCommit}_python_${python_suffix}.zip" bat(returnStatus:true, script: "net use w: /delete /y 2>nul & net use w: \\\\10.102.76.118\\data\\cv_bench_cache\\OVMS_do_not_remove\\ovms_artefacts\\") def destPath = "w:\\${env.PRODUCT_VERSION}\\${env.RELEASE_TAG}\\windows" def latestPath = "${destPath}\\latest" bat(returnStatus:true, script: "if not exist \"${destPath}\\${buildstamp}\" mkdir \"${destPath}\\${buildstamp}\"") bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${destPath}\\${buildstamp}\\${packageName}\"") - bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip.sha256\" \"${destPath}\\${buildstamp}\\${packageName}.sha256\"") bat(returnStatus:true, script: "if exist \"${latestPath}\" rmdir /S /Q \"${latestPath}\"") bat(returnStatus:true, script: "mkdir \"${latestPath}\"") bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip\" \"${latestPath}\\${packageName}\"") - bat(returnStatus:true, script: "copy /Y \"${env.WORKSPACE}\\dist\\windows\\ovms.zip.sha256\" \"${latestPath}\\${packageName}.sha256\"") } finally { windows.archive_build_artifacts() windows.archive_test_artifacts()