Re: Cirrus CI (Windows help wanted) - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Cirrus CI (Windows help wanted)
Date
Msg-id 7e6844c5-11f7-2bc1-9087-c1372475fd1e@dunslane.net
Whole thread Raw
In response to Re: Cirrus CI (Windows help wanted)  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: Cirrus CI (Windows help wanted)  (Thomas Munro <thomas.munro@gmail.com>)
Re: Cirrus CI (Windows help wanted)  (Justin Pryzby <pryzby@telsasoft.com>)
List pgsql-hackers
On 1/5/21 11:19 PM, Thomas Munro wrote:
>
> It seems we can make our own, either on-the-fly with caching, or
> hosted somewhere, like this:
>
> https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment
>
>


OK, I got this working.


There is some weirdness that I had to work around in the way they do
docker. So here's what works for me, with the docker image nicely cached
even across repos:


.cirrus.yml:

    task:
      name: Windows
      windows_container:
        dockerfile: ci/Dockerfile
      build_script:
          - cd "c:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Auxiliary/Build"
          - vcvarsall x64
          - echo on
          - cd C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build
          - set PATH=C:\strawberry\perl\bin;%PATH%
          - perl src/tools/msvc/mkvcbuild.pl
          - set IgnoreWarnIntDirInTempDetected=true
          - msbuild pgsql.sln
      test_script:
          - set PATH=C:\strawberry\perl\bin;%PATH%
          - perl src/tools/msvc/vcregress.pl check


ci/Dockerfile:

    FROM cirrusci/windowsservercore:2019

    SHELL ["powershell", "-NoLogo", "-NoProfile", "-Command"]


    RUN \
        pwd ; \
        choco feature disable -n=usePackageExitCodes ; \
        choco install -y --no-progress --version=16.8.3.0 visualstudio2019buildtools


    # cirrus does something odd with this command, so it's stuck in a bat file
    # and copied to the docker container and then executed
    COPY ci/inst-tools.bat .
    RUN \
        cmd /c .\inst-tools.bat

    RUN \
        choco install -y --no-progress strawberryperl ; \
        choco install -y --no-progress winflexbison diffutils ; \
        Rename-Item -Path c:\ProgramData\chocolatey\bin\win_flex.exe flex.exe ; \
        Rename-Item -Path c:\ProgramData\chocolatey\bin\win_bison.exe bison.exe ; \
        Remove-Item C:\ProgramData\chocolatey\logs\*.* -Force -Recurse ; \
        Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp\*.* -Force -Recurse

ci/inst-tools.bat:

    choco install -y --no-progress --version=1.0.0 visualstudio2019-workload-vctools  --install-args="--add
Microsoft.VisualStudio.Component.VC.CLI.Support"

cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Yet another fast GiST build
Next
From: Konstantin Knizhnik
Date:
Subject: Re: libpq compression