| [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 --cache-dir /subprojects C:/gstreamer/subprojects | |
| Remove-Item -Recurse -Force C:\gstreamer |