diff --git a/builds/docker/windows/Dockerfile b/builds/docker/windows/Dockerfile new file mode 100644 index 0000000000..459653d105 --- /dev/null +++ b/builds/docker/windows/Dockerfile @@ -0,0 +1,49 @@ +# escape=` + +FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 + +SHELL ["cmd", "/S", "/C"] + +# set visualstudio2019buildtools --version and --installChannelUri. +# +# Open https://docs.microsoft.com/en-us/visualstudio/releases/2019/history#installing-an-earlier-release +# Download BuildTools for a specific version. +# Open (extract) the downloaded file. +# Open file vs_setup_bootstrapper.json and extract the installChannelUri value. +# +# 16.11.6.0 - https://aka.ms/vs/16/release/201528995_-1285443981/channel +# 16.11.7.0 - https://aka.ms/vs/16/release/152566872_220409660/channel + +RUN ` + set chocolateyUseWindowsCompression='false' && ` + powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && ` + set "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" && ` + ` + choco install --no-progress --yes visualstudio2019buildtools --version=16.11.7.0 --package-parameters " ` + --installChannelUri https://aka.ms/vs/16/release/152566872_220409660/channel ` + --quiet --wait --norestart --nocache ` + --locale en-US ` + --add Microsoft.Component.MSBuild ` + --add Microsoft.VisualStudio.Component.VC.ATLMFC ` + --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` + --add Microsoft.VisualStudio.Component.VC.CMake.Project ` + --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` + --add Microsoft.VisualStudio.Component.Windows10SDK.19041 ` + --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core ` + --add Microsoft.VisualStudio.Workload.NativeDesktop ` + --remove Microsoft.VisualStudio.Component.Windows10SDK.10240 ` + --remove Microsoft.VisualStudio.Component.Windows10SDK.10586 ` + --remove Microsoft.VisualStudio.Component.Windows10SDK.14393 ` + --remove Microsoft.VisualStudio.Component.Windows81SDK ` + " && ` + choco install --no-progress --yes git --version=2.33.1 && ` + choco install --no-progress --yes 7zip.install --version=19.0 && ` + choco install --no-progress --yes innosetup --version=6.1.2 && ` + ` + refreshenv && ` + setx PATH "%PATH%;C:\Program Files\Git\usr\bin" + +ENV SEVENZIP='"C:\Program Files\7-Zip"' +ENV INNO6_SETUP_PATH='"C:\Program Files (x86)\Inno Setup 6"' + +COPY scripts\* C:\fbscripts\ diff --git a/builds/docker/windows/build.bat b/builds/docker/windows/build.bat new file mode 100644 index 0000000000..d84f114e23 --- /dev/null +++ b/builds/docker/windows/build.bat @@ -0,0 +1,2 @@ +@echo off +docker build -t asfernandes/firebird-builder:5 -m 2GB . diff --git a/builds/docker/windows/run.bat b/builds/docker/windows/run.bat new file mode 100644 index 0000000000..0de8f7fd53 --- /dev/null +++ b/builds/docker/windows/run.bat @@ -0,0 +1,2 @@ +@echo off +docker run --rm -v %cd%\..\..\..:C:\firebird -v %cd%\..\..\..\output:C:\firebird-out asfernandes/firebird-builder:5 %1 diff --git a/builds/docker/windows/scripts/build-x64.bat b/builds/docker/windows/scripts/build-x64.bat new file mode 100644 index 0000000000..664294bfa7 --- /dev/null +++ b/builds/docker/windows/scripts/build-x64.bat @@ -0,0 +1,14 @@ +REM FIXME @echo off + +call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=amd64 + +set FB_PROCESSOR_ARCHITECTURE=AMD64 +set FB_OUTPUT_SUFFIX=x64 + +xcopy /h /e /i /q C:\firebird C:\firebird-build +cd /d C:\firebird-build\builds\win32 + +REM call run_all.bat +call run_all.bat JUSTBUILD + +xcopy /h /e /i /q C:\firebird-build\output_%FB_OUTPUT_SUFFIX%\* C:\firebird-out diff --git a/builds/docker/windows/scripts/build-x86.bat b/builds/docker/windows/scripts/build-x86.bat new file mode 100644 index 0000000000..f5955e899b --- /dev/null +++ b/builds/docker/windows/scripts/build-x86.bat @@ -0,0 +1,14 @@ +@echo off + +call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" -arch=x86 + +set FB_PROCESSOR_ARCHITECTURE=x86 +set FB_OUTPUT_SUFFIX=win32 + +xcopy /h /e /i /q C:\firebird C:\firebird-build +cd /d C:\firebird-build\builds\win32 + +REM call run_all.bat +call run_all.bat JUSTBUILD + +xcopy /h /e /i /q C:\firebird-build\output_%FB_OUTPUT_SUFFIX%\* C:\firebird-out