gstreamer/ci/docker/windows/prepare_gst_env.ps1
Nirbheek Chauhan 585d719bd1 ci: Pick up the right branches when building a windows image
Now we will pick up the right gstreamer branch + namespace when
building an image, and also the right (matching, if any) cerbero
branch + namespace.

This solves the bootstrapping issue when doing an image update that
requires coordination between gstreamer and cerbero.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5043>
2023-07-17 05:52:24 +00:00

31 lines
1.5 KiB
PowerShell

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
# FIXME: Python fails to validate SSL certificates because of an incorrect
# schannel implementation. Windows downloads CA certs dynamically as required,
# and Python doesn't do the right thing to trigger that. So, add Mozilla's
# certs (via certifi) to the windows cert store manually. See:
# https://bugs.python.org/issue36137
# https://bugs.python.org/issue36011
python -m pip install certifi
$cert_pem = python -m certifi
$plaintext_pw = 'PASSWORD'
$secure_pw = ConvertTo-SecureString $plaintext_pw -AsPlainText -Force
C:\msys64\ucrt64\bin\openssl.exe pkcs12 -export -nokeys -out $env:TEMP\certs.pfx -in $cert_pem -passout pass:$plaintext_pw
Import-PfxCertificate -Password $secure_pw -CertStoreLocation Cert:\LocalMachine\Root -FilePath $env:TEMP\certs.pfx
$namespace = "gstreamer"
if ($env:CI_COMMIT_REF_NAME -ne $env:DEFAULT_BRANCH) {
$namespace = $env:CI_PROJECT_NAMESPACE
}
$url = "https://gitlab.freedesktop.org/$namespace/gstreamer.git"
Write-Host "Cloning GStreamer branch $env:CI_COMMIT_REF_NAME from $url"
git clone -b $env:CI_COMMIT_REF_NAME $url C:\gstreamer
# download the subprojects to try and cache them
Write-Host "Downloading subprojects"
meson subprojects download --sourcedir C:\gstreamer
Write-Host "Caching subprojects into /subprojects/"
python C:/gstreamer/ci/scripts/handle-subprojects-cache.py --build C:/gstreamer/subprojects
Remove-Item -Recurse -Force C:\gstreamer