qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: "Thomas Huth" <thuth@redhat.com>,
	qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>
Cc: Yonggang Luo <luoyonggang@gmail.com>
Subject: Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2
Date: Mon, 15 Nov 2021 15:29:35 +0100	[thread overview]
Message-ID: <cba3524e-00d2-08b1-582f-1f31163fecf0@amsat.org> (raw)
In-Reply-To: <20211115140623.104116-1-thuth@redhat.com>

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	other threads:[~2021-11-15 14:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-15 14:06 [PATCH] gitlab-ci: Test compilation on Windows with MSYS2 Thomas Huth
2021-11-15 14:29 ` Philippe Mathieu-Daudé [this message]
2021-11-16  7:05   ` Marc-André Lureau
2021-11-16  8:26     ` Philippe Mathieu-Daudé
2021-11-17 13:52       ` Alex Bennée
2021-11-17 14:44         ` Daniel P. Berrangé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cba3524e-00d2-08b1-582f-1f31163fecf0@amsat.org \
    --to=f4bug@amsat.org \
    --cc=alex.bennee@linaro.org \
    --cc=luoyonggang@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).