2018-11-25 18:38:06 +00:00
|
|
|
# escape=`
|
|
|
|
|
2022-03-22 10:17:33 +00:00
|
|
|
FROM 'mcr.microsoft.com/windows/server:ltsc2022'
|
2018-11-25 18:38:06 +00:00
|
|
|
|
2022-03-22 10:17:33 +00:00
|
|
|
# Make sure any failure in PowerShell is fatal
|
2019-12-04 22:52:45 +00:00
|
|
|
ENV ErrorActionPreference='Stop'
|
2023-07-12 09:41:02 +00:00
|
|
|
# Speed up Invoke-WebRequest by disabling progress bar
|
|
|
|
ENV ProgressPreference='SilentlyContinue'
|
2022-03-22 10:17:33 +00:00
|
|
|
SHELL ["powershell","-NoLogo", "-NonInteractive", "-Command"]
|
|
|
|
|
2023-06-30 20:27:10 +00:00
|
|
|
# Not needed right now, disable for now
|
|
|
|
#RUN Install-WindowsFeature -Name Server-Media-Foundation
|
2018-11-25 18:38:06 +00:00
|
|
|
|
ci: Update to VS 2022 Build Tools
We need the Windows 11 SDK for Windows Graphics Capture API support,
which will be enabled at runtime based on feature availability on
Windows, so should work correctly on Windows 8, 8.1, 10, and 11.
However, if we enable it in the VS 2019 installer, it will install
both Windows 10 SDK (required) and Windows 11 SDK (optional), which
will bloat the image by 3GB or more.
So just move to VS 2022 for the Windows images, which requires only
the Windows 11 SDK.
Had to remove the UWP build tools because they were causing the
installation to fail, likely due to an installer bug. We don't need
UWP anymore anyway. We just need the ARM64 build tools for the
cross-arm64 monorepo build.
Also stop installing into C:\BuildTools and let Meson pick the install
up with --vsenv.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4939>
2023-06-27 18:28:51 +00:00
|
|
|
# Visual Studio can't be installed with choco.
|
|
|
|
# It depends on dotnetfx v4.8.0.20190930, which requires a reboot: dotnetfx (exit code 3010)
|
|
|
|
# https://github.com/microsoft/vs-dockerfiles/blob/main/native-desktop/
|
|
|
|
# Set up environment to collect install errors.
|
|
|
|
COPY Install.cmd C:\TEMP\
|
|
|
|
RUN Invoke-WebRequest -Uri https://aka.ms/vscollect.exe -OutFile C:\TEMP\collect.exe
|
|
|
|
# Download channel for fixed install.
|
|
|
|
RUN Invoke-WebRequest -Uri https://aka.ms/vs/17/release/channel -OutFile C:\TEMP\VisualStudio.chman
|
|
|
|
# Download and install Build Tools for Visual Studio 2022 for native desktop workload.
|
|
|
|
RUN Invoke-WebRequest -Uri https://aka.ms/vs/17/release/vs_buildtools.exe -OutFile C:\TEMP\vs_buildtools.exe
|
|
|
|
RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
|
|
|
|
--channelUri C:\TEMP\VisualStudio.chman `
|
|
|
|
--installChannelUri C:\TEMP\VisualStudio.chman `
|
|
|
|
--add Microsoft.VisualStudio.Workload.VCTools `
|
|
|
|
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 `
|
|
|
|
--includeRecommended `
|
|
|
|
--installPath C:\BuildTools
|
|
|
|
|
|
|
|
RUN Get-ChildItem 'C:\BuildTools\VC\Tools\MSVC'
|
|
|
|
RUN Get-ChildItem 'C:\Program Files (x86)\Windows Kits\10\lib'
|
|
|
|
|
2021-10-01 15:20:30 +00:00
|
|
|
# Install Chocolatey
|
|
|
|
RUN iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
|
|
|
# Install required packages
|
|
|
|
RUN choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'
|
|
|
|
RUN choco install -y git --params '/NoAutoCrlf /NoCredentialManager /NoShellHereIntegration /NoGuiHereIntegration /NoShellIntegration'
|
|
|
|
RUN choco install -y git-lfs
|
|
|
|
RUN choco install -y 7zip
|
2023-04-24 13:31:57 +00:00
|
|
|
# See https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/427
|
|
|
|
RUN choco install -y python3 --version=3.11.2 --installargs 'AssociateFiles=1 PrependPath=1 Include_pip=1 Include_dev=1'
|
2021-10-01 15:20:30 +00:00
|
|
|
RUN choco install -y msys2 --params '/NoPath /NoUpdate /InstallDir:C:\\msys64'
|
2023-06-28 13:42:19 +00:00
|
|
|
RUN choco install --execution-timeout=3600 -y wixtoolset
|
2021-10-01 15:20:30 +00:00
|
|
|
|
2022-05-13 08:23:59 +00:00
|
|
|
# Remove MAX_PATH limit of 260 characters
|
|
|
|
RUN New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\FileSystem' `
|
|
|
|
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
|
|
|
|
RUN git config --system core.longpaths true
|
|
|
|
|
2023-07-12 09:41:27 +00:00
|
|
|
COPY upgrade_msys2.ps1 C:\
|
|
|
|
RUN C:\upgrade_msys2.ps1
|
2021-10-12 21:13:44 +00:00
|
|
|
|
2023-07-14 12:28:41 +00:00
|
|
|
RUN C:\msys64\msys2_shell.cmd -ucrt64 -defterm -here -no-start -use-full-path -lc 'pacman -S --noconfirm mingw-w64-ucrt-x86_64-toolchain ninja openssh'
|
2019-07-01 15:55:46 +00:00
|
|
|
|
2023-07-13 10:08:50 +00:00
|
|
|
RUN python -m pip install meson==1.1.1 python-gitlab
|
2020-09-01 18:30:29 +00:00
|
|
|
|
2023-07-12 09:41:27 +00:00
|
|
|
RUN 'git config --global user.email "cirunner@gstreamer.freedesktop.org"; git config --global user.name "GStreamer CI system"'
|
2019-07-01 15:55:46 +00:00
|
|
|
|
2023-04-03 13:23:02 +00:00
|
|
|
COPY install_rust.ps1 C:\
|
|
|
|
RUN C:\install_rust.ps1
|
|
|
|
|
2020-10-24 17:56:22 +00:00
|
|
|
ARG DEFAULT_BRANCH="main"
|
2023-07-13 10:08:50 +00:00
|
|
|
ARG CI_PROJECT_NAMESPACE
|
|
|
|
ARG CI_COMMIT_REF_NAME
|
2020-04-27 08:10:26 +00:00
|
|
|
|
2023-07-13 10:08:50 +00:00
|
|
|
ENV CI_PROJECT_NAMESPACE=$CI_PROJECT_NAMESPACE
|
|
|
|
ENV CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME
|
2020-01-21 13:29:01 +00:00
|
|
|
COPY prepare_gst_env.ps1 C:\
|
2019-12-02 16:23:27 +00:00
|
|
|
RUN C:\prepare_gst_env.ps1
|
2020-08-07 12:29:39 +00:00
|
|
|
|
2023-07-13 10:08:50 +00:00
|
|
|
ENV CI="true"
|
|
|
|
COPY get_cerbero_clone_args.py C:\
|
2020-08-07 12:29:39 +00:00
|
|
|
COPY prepare_cerbero_env.sh C:\
|
2023-07-12 09:41:27 +00:00
|
|
|
RUN C:\msys64\msys2_shell.cmd -ucrt64 -defterm -here -no-start -use-full-path -lc "C:/prepare_cerbero_env.sh"
|