Re: Mingw task for Cirrus CI

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: Melih Mutlu <m(dot)melihmutlu(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org, Andres Freund <andres(at)anarazel(dot)de>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
Subject: Re: Mingw task for Cirrus CI
Date: 2022-08-19 02:33:56
Message-ID: 20220819023356.GT26426@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Inline notes about changes since the last version.

On Thu, Jul 28, 2022 at 05:44:28PM -0500, Justin Pryzby wrote:
> I think the "only_if" should allow separately running one but not both of the
> windows instances, like:
>
> + only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*mingw64'
>
> I'm not sure, but maybe this task should only run "by request", and omit the
> first condition:
>
> + only_if: $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*mingw64'

The patch shouldn't say this during development, or else cfbot doesn't run it..
Oops.

> I think it should include something like
>
> + setup_additional_packages_script: |
> + REM C:\msys64\usr\bin\pacman.exe -S --noconfirm ...
>
> Let's see what others think about those.
>
> Do you know if this handles logging of crash dumps ?

It does now, although I hardcoded "postgres.exe" ...

> + setup_additional_packages_script: |
> + REM C:\msys64\usr\bin\pacman.exe -S --noconfirm busybox

This should include choco, too.

> - CXXFLAGS='-Og -ggdb'"
> + CXXFLAGS='-Og -ggdb' && break;
> + rm -v ${CCACHE_DIR}/configure.cache;
> + done

I noticed that this doesn't seem to do the right thing with the exit status -
configure can fail without cirrusci noticing, and then the build fails at the
next step.

> for item in `find "$sourcetree" -name Makefile -print -o -name GNUmakefile -print | grep -v "$sourcetree/doc/src/sgml/images/"`; do
> - filename=`expr "$item" : "$sourcetree\(.*\)"`
> - if test ! -f "${item}.in"; then
> - if cmp "$item" "$buildtree/$filename" >/dev/null 2>&1; then : ; else
> - ln -fs "$item" "$buildtree/$filename" || exit 1
> - fi
> - fi
> + filename=${item#$sourcetree}
> + [ -e "$buildtree/$filename" ] && continue

I fixed this to check for ".in" files as intended.

It'd be a lot better if the image didn't take so long to start. :(

--
Justin

Attachment Content-Type Size
0001-Added-Windows-with-MinGW-environment-in-Cirrus-CI.patch text/x-diff 4.0 KB
0002-f.patch text/x-diff 5.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2022-08-19 03:24:47 Re: Perform streaming logical transactions by background workers and parallel apply
Previous Message Andres Freund 2022-08-19 01:23:09 Re: Cirrus CI (Windows help wanted)