Browse Source

ci: add MinGW Makefiles nightly CI job

Use the MinGW/MSYS 1.0 distribution from `mingw.osdn.io`.
Brad King 3 years ago
parent
commit
01c58daec7

+ 14 - 0
.gitlab-ci.yml

@@ -1060,6 +1060,20 @@ t:windows-clang13.0-gnu-nmake:
         CMAKE_CI_BUILD_NAME: windows_clang13.0_gnu_nmake
         CMAKE_CI_JOB_NIGHTLY: "true"
 
+t:mingw_osdn_io-mingw_makefiles:
+    extends:
+        - .mingw_osdn_io_mingw_makefiles
+        - .cmake_test_windows_external
+        - .windows_tags_concurrent
+        - .cmake_junit_artifacts
+        - .run_dependent
+    dependencies:
+        - t:windows-vs2022-x64-ninja
+    needs:
+        - t:windows-vs2022-x64-ninja
+    variables:
+        CMAKE_CI_JOB_NIGHTLY: "true"
+
 t:windows-msvc-v71-nmake:
     extends:
         - .windows_msvc_v71_nmake

+ 1 - 0
.gitlab/.gitignore

@@ -5,6 +5,7 @@
 /ispc*
 /jom
 /llvm*
+/mingw
 /msvc*
 /ninja*
 /open-watcom*

+ 5 - 0
.gitlab/ci/configure_mingw_osdn_io_common.cmake

@@ -0,0 +1,5 @@
+set(CMake_TEST_Java OFF CACHE BOOL "")
+
+set(configure_no_sccache 1)
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 1 - 0
.gitlab/ci/configure_mingw_osdn_io_mingw_makefiles.cmake

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

+ 3 - 0
.gitlab/ci/env_mingw_osdn_io_mingw_makefiles.ps1

@@ -0,0 +1,3 @@
+$pwdpath = $pwd.Path
+& "$pwsh" -File ".gitlab/ci/mingw.ps1"
+Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\mingw\bin;$env:PATH"

+ 23 - 0
.gitlab/ci/mingw.ps1

@@ -0,0 +1,23 @@
+$erroractionpreference = "stop"
+
+if ("$env:CMAKE_CONFIGURATION".Contains("mingw_osdn_io")) {
+    $filename = "mingw.osdn.io-2022-10-03"
+    $sha256sum = "4DCB8C351D8D855F7D3DFC2863A235042BF3DB6E69EA0BAE51FF9378189345CD"
+} else {
+    throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
+}
+$tarball = "$filename.zip"
+
+$outdir = $pwd.Path
+$outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
+Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/$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\mingw"
+Remove-Item "$outdir\$tarball"

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

@@ -236,6 +236,22 @@
     variables:
         CMAKE_CONFIGURATION: windows_openwatcom1.9
 
+.mingw_osdn_io:
+    extends: .windows
+
+    variables:
+        # Place MinGW environment in a path without spaces.
+        GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake-ci-ext\\$CI_CONCURRENT_ID"
+        CMAKE_CI_BUILD_TYPE: Debug
+        CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.mingw_osdn_io_mingw_makefiles:
+    extends: .mingw_osdn_io
+
+    variables:
+        CMAKE_CONFIGURATION: mingw_osdn_io_mingw_makefiles
+        CMAKE_GENERATOR: "MinGW Makefiles"
+
 ## Tags
 
 .windows_tags_nonconcurrent_vs2022: