Selaa lähdekoodia

gitlab-ci: pin windows and macos jobs to runners with matching toolsets

The toolsets available on machines hosting shell runners will evolve
over time.  Require the runners to have tags indicating that they have
specific toolsets available.  When toolsets are eventually removed from
a runner, its tags can then be updated accordingly to prevent pipelines
created for old commits from ever running on them.
Brad King 5 vuotta sitten
vanhempi
sitoutus
0d5a1fd6e2
2 muutettua tiedostoa jossa 7 lisäystä ja 2 poistoa
  1. 6 1
      .gitlab-ci.yml
  2. 1 1
      .gitlab/ci/vcvarsall.ps1

+ 6 - 1
.gitlab-ci.yml

@@ -117,7 +117,8 @@
     variables:
         CMAKE_CONFIGURATION: windows_vs2019_x64_ninja
         VCVARSALL: "${VS160COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
-        VCVARSPLATFORM: x64
+        VCVARSPLATFORM: "x64"
+        VCVARSVERSION: "14.25"
 
 .windows_vs2019_x64: &windows_vs2019_x64
     extends: .windows
@@ -126,6 +127,7 @@
         CMAKE_CONFIGURATION: windows_vs2019_x64
         CMAKE_GENERATOR: "Visual Studio 16 2019"
         CMAKE_GENERATOR_PLATFORM: "x64"
+        CMAKE_GENERATOR_TOOLSET: "v142,version=14.25"
 
 .linux_builder_tags: &linux_builder_tags
     tags:
@@ -145,12 +147,15 @@
         - cmake # Since this is a bare runner, pin to a project.
         - macos
         - shell
+        - xcode-11.3
 
 .windows_builder_tags: &windows_builder_tags
     tags:
         - cmake # Since this is a bare runner, pin to a project.
         - windows
         - shell
+        - vs2019
+        - msvc-19.25
 
 .before_script_unix: &before_script_unix
     - .gitlab/ci/cmake.sh

+ 1 - 1
.gitlab/ci/vcvarsall.ps1

@@ -1,6 +1,6 @@
 $erroractionpreference = "stop"
 
-cmd /c "`"$env:VCVARSALL`" $VCVARSPLATFORM & set" |
+cmd /c "`"$env:VCVARSALL`" $VCVARSPLATFORM -vcvars_ver=$VCVARSVERSION & set" |
 foreach {
     if ($_ -match "=") {
         $v = $_.split("=")