qemu-devel
[Top][All Lists]
Advanced

[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
[...]



reply via email to

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