Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated. There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't need the --cross-prefix, besides we using environment variable settings: MSYS: winsymlinks:nativestrict MSYSTEM: MINGW64 CHERE_INVOKING: 1 to opening mingw64 native shell. We now running tests with make -i check to skip tests errors.
Signed-off-by: Yonggang Luo <luoyongg...@gmail.com> --- .cirrus.yml | 24 +++++++++++++++++++++ scripts/ci/windows/msys2-build.sh | 28 ++++++++++++++++++++++++ scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 scripts/ci/windows/msys2-build.sh create mode 100644 scripts/ci/windows/msys2-install.sh diff --git a/.cirrus.yml b/.cirrus.yml index 3dd9fcff7f..49335e68c9 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -63,3 +63,27 @@ macos_xcode_task: --enable-werror --cc=clang || { cat config.log; exit 1; } - gmake -j$(sysctl -n hw.ncpu) - gmake check + +windows_msys2_task: + windows_container: + image: cirrusci/windowsservercore:cmake + os_version: 2019 + cpu: 8 + memory: 8G + env: + MSYS: winsymlinks:nativestrict + MSYSTEM: MINGW64 + CHERE_INVOKING: 1 + printenv_script: + - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv' + install_script: + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime" + - taskkill /F /IM gpg-agent.exe + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su" + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-install.sh" + script: + - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-build.sh" diff --git a/scripts/ci/windows/msys2-build.sh b/scripts/ci/windows/msys2-build.sh new file mode 100644 index 0000000000..d9d046b5b0 --- /dev/null +++ b/scripts/ci/windows/msys2-build.sh @@ -0,0 +1,28 @@ +mkdir build +cd build +../configure \ +--python=python3 \ +--ninja=ninja \ +--enable-stack-protector \ +--enable-guest-agent \ +--disable-pie \ +--enable-gnutls --enable-nettle \ +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte --enable-curses --enable-iconv \ +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \ +--enable-slirp=git \ +--disable-brlapi --enable-curl \ +--enable-fdt \ +--disable-kvm --enable-hax --enable-whpx \ +--enable-libnfs --enable-libusb --enable-live-block-migration --enable-usb-redir \ +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \ +--enable-membarrier --enable-coroutine-pool \ +--enable-libssh --enable-libxml2 \ +--enable-jemalloc --enable-avx2 \ +--enable-replication \ +--enable-tools \ +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi --enable-vvfat --enable-qed --enable-parallels \ +--enable-sheepdog \ +--enable-capstone=git + +make -j$NUMBER_OF_PROCESSORS +make -i -j$NUMBER_OF_PROCESSORS check diff --git a/scripts/ci/windows/msys2-install.sh b/scripts/ci/windows/msys2-install.sh new file mode 100644 index 0000000000..6086452399 --- /dev/null +++ b/scripts/ci/windows/msys2-install.sh @@ -0,0 +1,33 @@ +pacman --noconfirm -S --needed \ +base-devel \ +git \ +mingw-w64-x86_64-python \ +mingw-w64-x86_64-python-setuptools \ +mingw-w64-x86_64-toolchain \ +mingw-w64-x86_64-SDL2 \ +mingw-w64-x86_64-SDL2_image \ +mingw-w64-x86_64-gtk3 \ +mingw-w64-x86_64-glib2 \ +mingw-w64-x86_64-ninja \ +mingw-w64-x86_64-make \ +mingw-w64-x86_64-jemalloc \ +mingw-w64-x86_64-lzo2 \ +mingw-w64-x86_64-zstd \ +mingw-w64-x86_64-libjpeg-turbo \ +mingw-w64-x86_64-pixman \ +mingw-w64-x86_64-libgcrypt \ +mingw-w64-x86_64-capstone \ +mingw-w64-x86_64-libpng \ +mingw-w64-x86_64-libssh \ +mingw-w64-x86_64-libxml2 \ +mingw-w64-x86_64-snappy \ +mingw-w64-x86_64-libusb \ +mingw-w64-x86_64-usbredir \ +mingw-w64-x86_64-libtasn1 \ +mingw-w64-x86_64-libnfs \ +mingw-w64-x86_64-nettle \ +mingw-w64-x86_64-cyrus-sasl \ +mingw-w64-x86_64-curl \ +mingw-w64-x86_64-gnutls \ +mingw-w64-x86_64-zstd \ + -- 2.28.0.windows.1