From d5bf5a33bfbefa55b01906b473989ad31159760d Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Sun, 31 Aug 2025 21:17:51 -0700 Subject: [PATCH 1/3] Change windows-2019-x64 -> windows-all-x64 Because the single Windows agent should work for all supported modern Windows OSes, this changes the name to windows-all-x64. This also adds the site to the Cygwin bootstrapping setup.bat file, as this is needed when running the installer for the very first time like we will be in GitHub Actions. --- .github/workflows/runtime_tests.yml | 2 +- configs/components/ruby-3.2.rb | 5 +---- .../{windows-2019-x64.rb => windows-all-x64.rb} | 2 +- resources/patches/.DS_Store | Bin 0 -> 6148 bytes setup.bat | 2 +- 5 files changed, 4 insertions(+), 7 deletions(-) rename configs/platforms/{windows-2019-x64.rb => windows-all-x64.rb} (97%) create mode 100644 resources/patches/.DS_Store diff --git a/.github/workflows/runtime_tests.yml b/.github/workflows/runtime_tests.yml index 8830ab10..f3163047 100644 --- a/.github/workflows/runtime_tests.yml +++ b/.github/workflows/runtime_tests.yml @@ -32,7 +32,7 @@ jobs: run: | stat=0 for projfile in configs/projects/[a-z]*.rb; do - for plat in el-8-x86_64 ubuntu-22.04-amd64 windows-2019-x64; do + for plat in el-8-x86_64 ubuntu-22.04-amd64 windows-all-x64; do proj=$(basename -s .rb "$projfile") if [[ "$proj" =~ ^pe- && "$plat" =~ ^(windows|osx) ]]; then echo Skipping ${proj} on ${plat}, PE projects don\'t support Windows or macOS diff --git a/configs/components/ruby-3.2.rb b/configs/components/ruby-3.2.rb index 9d88d7d6..16dec74e 100644 --- a/configs/components/ruby-3.2.rb +++ b/configs/components/ruby-3.2.rb @@ -158,10 +158,7 @@ 'sles-12-ppc64le', 'solaris-11-sparc', 'solaris-113-sparc', - 'windows-2012r2-x64', - 'windows-2012r2-x86', - 'windows-2019-x64', - 'windowsfips-2012r2-x64', + 'windows-all-x64', 'windowsfips-2016-x64' ] diff --git a/configs/platforms/windows-2019-x64.rb b/configs/platforms/windows-all-x64.rb similarity index 97% rename from configs/platforms/windows-2019-x64.rb rename to configs/platforms/windows-all-x64.rb index e02a8bff..e6e9d664 100644 --- a/configs/platforms/windows-2019-x64.rb +++ b/configs/platforms/windows-all-x64.rb @@ -1,4 +1,4 @@ -platform "windows-2019-x64" do |plat| +platform "windows-all-x64" do |plat| plat.vmpooler_template "win-2019-x86_64" # Not currently used diff --git a/resources/patches/.DS_Store b/resources/patches/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..bac731c9d30c7f79a9495e9c9ab33241aaa89e4c GIT binary patch literal 6148 zcmeHK%}T>S5T0$TO({YSiXH=A3)Z#>#Y?F51&ruHr6#m!FlI}VTBH&_Z zH()j3O~lT??l(I>yO|HNKL8*Gv+*H-4FDE4LP1K2kh#=VF~NjF%`t*5bb@(04Wg2X z{-TM#y$%V?Ab@B1^!+kG&s#8!!Zd5Q-$kWb+t{pIb*pLJc=vMdWqvkG2YzxzqjM>v zpwRu`BAm=e_V$U4Ge3+ciAo5^6AZb&4CAq!59BN!rz+Re4y$1`M)vMv(eJjLUazxk zIg5U$je7TJxolWF`v=Eoqlf4*mM@w~fut+hGFZSXDqo6v@{%}`@f~`KtRk9`8DIvO z0cK#$7%&Hc)m*c>xm;#|8Tgq2+8-Qjgs#C{quM&Kqw6#IYlI}I(_4bjG3Xl1HKGSa z=u||VD$El@=ybF@CeAgOYt-o=)XF%IS-E(;2(>!e9Tg73)yO?FzznQ1P}M`5&i_;V zWlA6Ut0_EU2AF|=#(<~|z2N|hGH2_z^60E}u-#%Kp}3qB6x3HP0XU$2WKTJ@-yt32 YT!XnrnuY8t9g!~riV*IYfnQ+Y1EKCq6#xJL literal 0 HcmV?d00001 diff --git a/setup.bat b/setup.bat index 7ccdd4d3..856f63cc 100644 --- a/setup.bat +++ b/setup.bat @@ -1 +1 @@ -C:\setup-x86_64.exe -q -P ruby,ruby-devel,gcc-core,make,git,libyaml-devel +C:\setup-x86_64.exe -s https://cygwin.osuosl.org -q -P ruby,ruby-devel,gcc-core,make,git,libyaml-devel From c1a3b4789d33cf31c8f23ef55583a214784b5c4f Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Tue, 2 Sep 2025 11:44:28 -0700 Subject: [PATCH 2/3] Fail upload task if it can't find files to upload and fix for Windows If we can't find files to upload, then the task should fail, especially in GitHub Actions. This also fixes pathing on Windows in a way that should work for both local and CI Cygwin-based builds. --- tasks/upload.rake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tasks/upload.rake b/tasks/upload.rake index c564eb3f..4a28925e 100644 --- a/tasks/upload.rake +++ b/tasks/upload.rake @@ -16,12 +16,12 @@ namespace :vox do # Ensure the AWS CLI isn't going to fail with the given parameters run_command("#{s3} ls s3://#{bucket}/") - prepend = File.directory?('/cygdrive/') ? 'C:/cygwin64/' : '' - files = Dir.glob("#{prepend}#{__dir__}/../output/*#{munged_tag}*#{platform}*") - puts 'No files for the given tag found in the output directory.' if files.empty? + files = Dir.glob("#{__dir__}/../output/*#{munged_tag}*#{platform}*") + abort 'No files for the given tag found in the output directory.' if files.empty? path = "s3://#{bucket}/#{repo}/#{args[:tag]}" files.each do |f| + f = `cygpath -m #{f}`.chomp if platform =~ /windows-/ run_command("#{s3} cp #{f} #{path}/#{File.basename(f)}", silent: false) end end From 8e89dccb9a90f05f20d9547467f6da6703560be7 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Tue, 2 Sep 2025 19:52:22 -0700 Subject: [PATCH 3/3] Make setup.bat -> setup.ps1 and download Cygwin Make this a ps1 file so that we can download different things for different repos, and have the GitHub action just call the script. --- setup.bat | 1 - setup.ps1 | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) delete mode 100644 setup.bat create mode 100644 setup.ps1 diff --git a/setup.bat b/setup.bat deleted file mode 100644 index 856f63cc..00000000 --- a/setup.bat +++ /dev/null @@ -1 +0,0 @@ -C:\setup-x86_64.exe -s https://cygwin.osuosl.org -q -P ruby,ruby-devel,gcc-core,make,git,libyaml-devel diff --git a/setup.ps1 b/setup.ps1 new file mode 100644 index 00000000..9ef2e0d7 --- /dev/null +++ b/setup.ps1 @@ -0,0 +1,4 @@ +$url="https://cygwin.com/setup-x86_64.exe" +$dest="C:\setup-x86_64.exe" +Invoke-WebRequest -Uri $url -OutFile $dest +cmd /c "C:\setup-x86_64.exe -s https://cygwin.osuosl.org -q -P ruby,ruby-devel,gcc-core,make,git,libyaml-devel"