qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2


From: Thomas Huth
Subject: [RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2
Date: Fri, 9 Jul 2021 09:52:18 +0200

Gitlab also provides runners with Windows, we can use them to
test compilation with MSYS2.

However, it takes quite a long time to set up the VM, so to
stay in the 1h time frame, we can only compile and check one
target here. And there is also still a problem with compiling
the multiboot.bin in pc-bios/optionrom/, so this is currently
disabled, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 I'm sending this out as an RFC in case somebody else wants to play
 with this. Considering that the corresponding job in Cirrus-CI compiles
 way more targets within 1 hour, we might rather want to keep using
 the Cirrus-CI job instead?

 .gitlab-ci.d/qemu-project.yml |  1 +
 .gitlab-ci.d/windows.yml      | 59 +++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+)
 create mode 100644 .gitlab-ci.d/windows.yml

diff --git a/.gitlab-ci.d/qemu-project.yml b/.gitlab-ci.d/qemu-project.yml
index 64cb2ba1da..f1a34038af 100644
--- a/.gitlab-ci.d/qemu-project.yml
+++ b/.gitlab-ci.d/qemu-project.yml
@@ -9,3 +9,4 @@ include:
   - local: '/.gitlab-ci.d/crossbuilds.yml'
   - local: '/.gitlab-ci.d/buildtest.yml'
   - local: '/.gitlab-ci.d/static_checks.yml'
+  - local: '/.gitlab-ci.d/windows.yml'
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
new file mode 100644
index 0000000000..1874a06739
--- /dev/null
+++ b/.gitlab-ci.d/windows.yml
@@ -0,0 +1,59 @@
+.shared_windows_runners:
+  tags:
+  - shared-windows
+  - windows
+  - windows-1809
+
+msys2-build:
+  extends: .shared_windows_runners
+  stage: build
+  before_script:
+  - Invoke-WebRequest
+    
"https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.sfx.exe";
+    -outfile "msys2.exe"
+  - .\msys2.exe -y -oC:\
+  - del msys2.exe
+  - ((Get-Content -path C:\msys64\etc\\post-install\\07-pacman-key.post -Raw)
+      -replace '--refresh-keys', '--version') |
+     Set-Content -Path C:\msys64\etc\\post-install\\07-pacman-key.post
+  - C:\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' 
/etc/pacman.conf"
+  - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
+  - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal update
+  - C:\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
+      diffutils git grep make pkg-config sed
+      mingw-w64-x86_64-capstone
+      mingw-w64-x86_64-curl
+      mingw-w64-x86_64-cyrus-sasl
+      mingw-w64-x86_64-gcc
+      mingw-w64-x86_64-glib2
+      mingw-w64-x86_64-gnutls
+      mingw-w64-x86_64-gtk3
+      mingw-w64-x86_64-libgcrypt
+      mingw-w64-x86_64-libjpeg-turbo
+      mingw-w64-x86_64-libnfs
+      mingw-w64-x86_64-libpng
+      mingw-w64-x86_64-libssh
+      mingw-w64-x86_64-libtasn1
+      mingw-w64-x86_64-libusb
+      mingw-w64-x86_64-libxml2
+      mingw-w64-x86_64-lzo2
+      mingw-w64-x86_64-make
+      mingw-w64-x86_64-nettle
+      mingw-w64-x86_64-ninja
+      mingw-w64-x86_64-pixman
+      mingw-w64-x86_64-pkgconf
+      mingw-w64-x86_64-python
+      mingw-w64-x86_64-SDL2
+      mingw-w64-x86_64-SDL2_image
+      mingw-w64-x86_64-snappy
+      mingw-w64-x86_64-usbredir
+      mingw-w64-x86_64-zstd "
+  - taskkill /F /FI "MODULES eq msys-2.0.dll"
+  script:
+  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
+  - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
+  - C:\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
+      --enable-capstone=system --disable-fdt'
+  - C:\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
+  - C:\msys64\usr\bin\bash -lc 'make -j2'
+  - C:\msys64\usr\bin\bash -lc 'make V=1 check'
-- 
2.27.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]