[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
- [RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2,
Thomas Huth <=