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