Răsfoiți Sursa

ci: Add Open Watcom 1.9 nightly CI job

Brad King 4 ani în urmă
părinte
comite
14f2dbad03

+ 14 - 0
.gitlab-ci.yml

@@ -782,3 +782,17 @@ test:windows-borland5.8:
         - test:windows-vs2019-x64-ninja
         - test:windows-vs2019-x64-ninja
     variables:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
         CMAKE_CI_JOB_NIGHTLY: "true"
+
+test:windows-openwatcom1.9:
+    extends:
+        - .windows_openwatcom1.9
+        - .cmake_test_windows_openwatcom
+        - .windows_builder_ext_tags
+        - .cmake_junit_artifacts
+        - .run_dependent
+    dependencies:
+        - test:windows-vs2019-x64-ninja
+    needs:
+        - test:windows-vs2019-x64-ninja
+    variables:
+        CMAKE_CI_JOB_NIGHTLY: "true"

+ 1 - 0
.gitlab/ci/configure_windows_openwatcom1.9.cmake

@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_openwatcom_common.cmake")

+ 2 - 0
.gitlab/ci/configure_windows_openwatcom_common.cmake

@@ -0,0 +1,2 @@
+set(configure_no_sccache 1)
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 25 - 0
.gitlab/ci/openwatcom.ps1

@@ -0,0 +1,25 @@
+$erroractionpreference = "stop"
+
+if ("$env:CMAKE_CONFIGURATION".Contains("openwatcom1.9")) {
+    # Open Watcom 1.9
+    # https://web.archive.org/web/20210312132437/http://www.openwatcom.org/download.php
+    $filename = "open-watcom-1.9-1"
+    $sha256sum = "FFE6F5BBA200912697C6EC26C4D3B2623A0358FBE7CBB23BD264CBF7D54E4988"
+} else {
+    throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
+}
+$tarball = "$filename.zip"
+
+$outdir = $pwd.Path
+$outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
+# This URL is only visible inside of Kitware's network.  See above filename table.
+Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/internal/$tarball" -OutFile "$outdir\$tarball"
+$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256
+if ($hash.Hash -ne $sha256sum) {
+    exit 1
+}
+
+Add-Type -AssemblyName System.IO.Compression.FileSystem
+[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir")
+Move-Item -Path "$outdir\$filename" -Destination "$outdir\watcom"

+ 30 - 0
.gitlab/os-windows.yml

@@ -72,6 +72,22 @@
     variables:
     variables:
         CMAKE_CONFIGURATION: windows_borland5.8
         CMAKE_CONFIGURATION: windows_borland5.8
 
 
+.windows_openwatcom:
+    extends: .windows
+
+    variables:
+        # Watcom does not support spaces in the path.
+        GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake-ci-ext\\$CI_CONCURRENT_ID"
+        CMAKE_GENERATOR: "Watcom WMake"
+        CMAKE_CI_BUILD_TYPE: Release
+        CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_openwatcom1.9:
+    extends: .windows_openwatcom
+
+    variables:
+        CMAKE_CONFIGURATION: windows_openwatcom1.9
+
 ## Tags
 ## Tags
 
 
 .windows_builder_tags:
 .windows_builder_tags:
@@ -154,3 +170,17 @@
         - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake
         - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake
 
 
     interruptible: true
     interruptible: true
+
+.cmake_test_windows_openwatcom:
+    stage: test-ext
+
+    script:
+        - Invoke-Expression -Command .gitlab/ci/openwatcom.ps1
+        - $pwdpath = $pwd.Path
+        - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\watcom\binnt;$pwdpath\.gitlab\watcom\binw;$env:PATH"
+        - Set-Item -Force -Path "env:INCLUDE" -Value "$pwdpath\.gitlab\watcom\h;$pwdpath\.gitlab\watcom\h\nt"
+        - Set-Item -Force -Path "env:EDPATH" -Value "$pwdpath\.gitlab\watcom\eddat"
+        - Set-Item -Force -Path "env:WATCOM" -Value "$pwdpath\.gitlab\watcom"
+        - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake
+
+    interruptible: true