[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2 |
Date: |
Mon, 15 Nov 2021 15:29:35 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
On 11/15/21 15:06, Thomas Huth wrote:
> Gitlab also provides runners with Windows, we can use them to
> test compilation with MSYS2, in both, 64-bit and 32-bit.
>
> 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.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> "make check" recently broke on MSYS2, and nobody noticed since apparently
> hardly anybody looks at the cirrus-CI output ... so here's another try
> to get some more test coverage in this area in the gitlab-CI instead.
> Patch needs to be applied after the "tests/unit/test-smp-parse:
> Make an unified name for the tested machine" patch to get "make check"
> fixed first.
>
> RFC -> v1:
> - Use cache to speed up installation a little bit
> - Add a 32-bit builder, too
>
> .gitlab-ci.d/qemu-project.yml | 1 +
> .gitlab-ci.d/windows.yml | 98 +++++++++++++++++++++++++++++++++++
> 2 files changed, 99 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 b3d79bc429..871262fe0e 100644
> --- a/.gitlab-ci.d/qemu-project.yml
> +++ b/.gitlab-ci.d/qemu-project.yml
> @@ -11,3 +11,4 @@ include:
> - local: '/.gitlab-ci.d/static_checks.yml'
> - local: '/.gitlab-ci.d/custom-runners.yml'
> - local: '/.gitlab-ci.d/cirrus.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..309f7e7fb8
> --- /dev/null
> +++ b/.gitlab-ci.d/windows.yml
> @@ -0,0 +1,98 @@
> +.shared_msys2_builder:
> + tags:
> + - shared-windows
> + - windows
> + - windows-1809
> + cache:
> + key: "${CI_JOB_NAME}-cache"
It would be nice to cache the shared 'before_script' part,
but it doesn't seems trivial; meanwhile this patch works and
is KISS, so:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> + paths:
> + - ${CI_PROJECT_DIR}/msys64/var/cache
> + needs: []
> + stage: build
> + timeout: 70m
> + before_script:
> + - If ( !(Test-Path -Path msys64\var\cache ) ) {
> + mkdir msys64\var\cache
> + }
> + - If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
> + Invoke-WebRequest
> +
> "https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe"
> + -outfile "msys64\var\cache\msys2.exe"
> + }
> + - msys64\var\cache\msys2.exe -y
> + - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post -Raw)
> + -replace '--refresh-keys', '--version') |
> + Set-Content -Path
> ${CI_PROJECT_DIR}\msys64\etc\\post-install\\07-pacman-key.post
> + - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g'
> /etc/pacman.conf"
> + - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Core update
> + - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu' # Normal update
> + - taskkill /F /FI "MODULES eq msys-2.0.dll"
> +
> +msys2-64bit:
> + extends: .shared_msys2_builder
> + script:
> + - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
> + diffutils git grep make sed
> + mingw-w64-x86_64-capstone
[...]