diff --git a/ci/teamcity/Delft3D/linux/collect.kt b/ci/teamcity/Delft3D/linux/collect.kt index b27494c36b..ef68f092b5 100644 --- a/ci/teamcity/Delft3D/linux/collect.kt +++ b/ci/teamcity/Delft3D/linux/collect.kt @@ -28,6 +28,10 @@ object LinuxCollect : BuildType({ dimrset_version*txt => version """.trimIndent() + params { + param("file_path", "dimrset_linux_%dep.${LinuxBuild.id}.product%_%build.vcs.number%.tar.gz") + } + vcs { root(DslContext.settingsRoot) cleanCheckout = true @@ -59,6 +63,24 @@ object LinuxCollect : BuildType({ path = "/usr/bin/python3" arguments = "ci/python/ci_tools/dimrset_delivery/scripts/list_all_what_strings.py --srcdir lnx64 --output dimrset_version_lnx64.txt" } + script { + name = "Prepare artifact to upload" + scriptContent = """ + echo "Creating %file_path%..." + tar -czf %file_path% lnx64 dimrset_version_lnx64.txt + """.trimIndent() + } + step { + name = "Upload artifact to Nexus" + type = "RawUploadNexusLinux" + executionMode = BuildStep.ExecutionMode.DEFAULT + param("file_path", "%file_path%") + param("nexus_username", "%nexus_username%") + param("nexus_password", "%nexus_password%") + param("nexus_repo", "/delft3d-dev") + param("nexus_url", "https://artifacts.deltares.nl/repository") + param("target_path", "/07_day_retention/dimrset/%file_path%") + } } failureConditions { diff --git a/ci/teamcity/Delft3D/linux/runtimeContainers.kt b/ci/teamcity/Delft3D/linux/runtimeContainers.kt index 9fec21eb61..6f4c83ba58 100644 --- a/ci/teamcity/Delft3D/linux/runtimeContainers.kt +++ b/ci/teamcity/Delft3D/linux/runtimeContainers.kt @@ -36,6 +36,10 @@ object LinuxRuntimeContainers : BuildType({ } } + params { + param("file_path", "dimrset_linux_%dep.${LinuxBuild.id}.product%_%build.vcs.number%.tar.gz") + } + vcs { root(DslContext.settingsRoot) cleanCheckout = true @@ -43,6 +47,34 @@ object LinuxRuntimeContainers : BuildType({ steps { mergeTargetBranch {} + step { + name = "Download artifact from Nexus" + type = "RawDownloadNexusLinux" + executionMode = BuildStep.ExecutionMode.DEFAULT + param("artifact_path", "/07_day_retention/dimrset/%file_path%") + param("nexus_repo", "/delft3d-dev") + param("nexus_username", "%nexus_username%") + param("download_to", ".") + param("nexus_password", "%nexus_password%") + param("nexus_url", "https://artifacts.deltares.nl/repository") + } + script { + name = "Extract artifact" + enabled = false + scriptContent = """ + echo "Extracting %file_path%..." + + tar -xzf %file_path% + + mkdir dimrset + + cp -r lnx64/bin dimrset/bin + + cp -r lnx64/lib dimrset/lib + + cp -r lnx64/share dimrset/share + """.trimIndent() + } exec { name = "Copy example and readme.txt" path = "ci/teamcity/Delft3D/linux/scripts/copyExampleAndReadMe.sh" diff --git a/ci/teamcity/Delft3D/linux/unitTest.kt b/ci/teamcity/Delft3D/linux/unitTest.kt index 20cd23bbf0..6b2cb8b92d 100644 --- a/ci/teamcity/Delft3D/linux/unitTest.kt +++ b/ci/teamcity/Delft3D/linux/unitTest.kt @@ -28,6 +28,7 @@ object LinuxUnitTest : BuildType({ params { param("env.PATH", "%teamcity.build.checkoutDir%/lnx64/bin:%env.PATH%") param("env.LD_LIBRARY_PATH", "%teamcity.build.checkoutDir%/lnx64/lib:%env.LD_LIBRARY_PATH%") + param("file_path", "dimrset_linux_%dep.${LinuxBuild.id}.product%_%build.vcs.number%.tar.gz") } vcs { @@ -37,6 +38,26 @@ object LinuxUnitTest : BuildType({ steps { mergeTargetBranch {} + step { + name = "Download artifact from Nexus" + type = "RawDownloadNexusLinux" + executionMode = BuildStep.ExecutionMode.DEFAULT + param("artifact_path", "/07_day_retention/dimrset/%file_path%") + param("nexus_repo", "/delft3d-dev") + param("nexus_username", "%nexus_username%") + param("download_to", ".") + param("nexus_password", "%nexus_password%") + param("nexus_url", "https://artifacts.deltares.nl/repository") + } + script { + name = "Extract artifact" + enabled = false + scriptContent = """ + echo "Extracting %file_path%..." + + tar -xzf %file_path% + """.trimIndent() + } python { conditions { matches("product", """^(fm-(suite|testbench))|(all-testbench)$""") diff --git a/ci/teamcity/Delft3D/settings.kts b/ci/teamcity/Delft3D/settings.kts index 65be96e042..f041d8e7f3 100644 --- a/ci/teamcity/Delft3D/settings.kts +++ b/ci/teamcity/Delft3D/settings.kts @@ -24,6 +24,9 @@ project { param("s3_dsctestbench_accesskey", DslContext.getParameter("s3_dsctestbench_accesskey")) password("s3_dsctestbench_secret", "credentialsJSON:7e8a3aa7-76e9-4211-a72e-a3825ad1a160") + param("nexus_username", DslContext.getParameter("nexus_username")) + password("nexus_password", DslContext.getParameter("nexus_password")) + param("product", "dummy_value") } diff --git a/ci/teamcity/Delft3D/windows/collect.kt b/ci/teamcity/Delft3D/windows/collect.kt index fcb481340d..d6af0c6623 100644 --- a/ci/teamcity/Delft3D/windows/collect.kt +++ b/ci/teamcity/Delft3D/windows/collect.kt @@ -27,6 +27,10 @@ object WindowsCollect : BuildType({ dimrset_version*txt => version """.trimIndent() + params { + param("file_path", "dimrset_windows_%dep.${WindowsBuild.id}.product%_%build.vcs.number%.zip") + } + vcs { root(DslContext.settingsRoot) cleanCheckout = true @@ -75,6 +79,31 @@ object WindowsCollect : BuildType({ matches("dep.${WindowsBuild.id}.build_type", "Release") } } + powerShell { + name = "Prepare artifact to upload" + scriptMode = script { + content = """ + ${'$'}ErrorActionPreference = "Stop" + + Write-Host "Creating %file_path% ..." + + Compress-Archive -Path "x64", "dimrset_version_x64.txt" -DestinationPath %file_path% -Force + + Write-Host "ZIP created: %file_path%" + """.trimIndent() + } + } + step { + name = "Upload artifact to Nexus" + type = "RawUploadNexusWindows" + executionMode = BuildStep.ExecutionMode.DEFAULT + param("file_path", "%file_path%") + param("nexus_username", "%nexus_username%") + param("nexus_password", "%nexus_password%") + param("nexus_repo", "/delft3d-dev") + param("nexus_url", "https://artifacts.deltares.nl/repository") + param("target_path", "/07_day_retention/dimrset/%file_path%") + } } failureConditions { diff --git a/ci/teamcity/Delft3D/windows/test.kt b/ci/teamcity/Delft3D/windows/test.kt index 2b8955b582..652fb83030 100644 --- a/ci/teamcity/Delft3D/windows/test.kt +++ b/ci/teamcity/Delft3D/windows/test.kt @@ -61,6 +61,7 @@ object WindowsTest : BuildType({ text("case_filter", "", label = "Case filter", display = ParameterDisplay.PROMPT, allowEmpty = true) param("s3_dsctestbench_accesskey", DslContext.getParameter("s3_dsctestbench_accesskey")) password("s3_dsctestbench_secret", DslContext.getParameter("s3_dsctestbench_secret")) + param("file_path", "dimrset_windows_%dep.${WindowsBuild.id}.product%_%build.vcs.number%.zip") } @@ -75,6 +76,34 @@ object WindowsTest : BuildType({ steps { mergeTargetBranch {} + step { + name = "Download artifact from Nexus" + type = "RawDownloadNexusWindows" + executionMode = BuildStep.ExecutionMode.DEFAULT + param("artifact_path", "/07_day_retention/dimrset/%file_path%") + param("nexus_repo", "/delft3d-dev") + param("nexus_username", "%nexus_username%") + param("download_to", ".") + param("nexus_password", "%nexus_password%") + param("nexus_url", "https://artifacts.deltares.nl/repository") + } + powerShell { + name = "Extract artifact" + enabled = false + scriptMode = script { + content = """ + ${'$'}ErrorActionPreference = "Stop" + + ${'$'}dest = "test/deltares_testbench/data/engines/teamcity_artifacts/x64" + + Write-Host "Extracting %file_path% ..." + + Expand-Archive -Path %file_path% -DestinationPath "temp_extract" + + robocopy "temp_extract/x64" ${'$'}dest /E /XC /XN /XO + """.trimIndent() + } + } python { name = "Run TestBench.py" id = "RUNNER_testbench"