2015-02-05 09:49:26 -08:00
|
|
|
version: 1.0.{build}
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
image: Visual Studio 2019
|
2015-02-05 09:49:26 -08:00
|
|
|
branches:
|
2018-02-27 11:57:37 -08:00
|
|
|
only:
|
2024-03-22 15:11:17 +00:00
|
|
|
- main
|
2020-09-24 09:24:03 +03:00
|
|
|
configuration:
|
|
|
|
- Debug
|
|
|
|
- Release
|
|
|
|
clone_folder: C:\openvswitch_compile
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
shallow_clone: true
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
|
2015-02-05 09:49:26 -08:00
|
|
|
init:
|
2025-03-11 18:39:39 +01:00
|
|
|
- ps: $env:PATH ="C:\Python312-x64;C:\Python312-x64\Scripts;"+$env:PATH
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: New-Item -Type HardLink -Path "C:\Python312-x64\python3.exe"
|
|
|
|
-Value "C:\Python312-x64\python.exe"
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
|
|
|
|
cache:
|
2024-06-10 23:18:14 +02:00
|
|
|
- C:\ovs-build-downloads
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
|
|
|
|
install:
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: |
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
Remove-Item -Recurse -Force -Path C:/OpenSSL-Win64
|
|
|
|
New-Item -ItemType Directory -Force -Path C:\ovs-build-downloads
|
|
|
|
|
|
|
|
# Find and download the latest stable OpenSSl 3.0.
|
|
|
|
$URL = "https://raw.githubusercontent.com/slproweb/opensslhashes/master/win32_openssl_hashes.json"
|
|
|
|
$webData = (Invoke-WebRequest -Uri $URL).content | ConvertFrom-Json
|
|
|
|
$source = ($webData.files.PSObject.Properties | Where-Object {
|
2024-04-12 01:32:40 +02:00
|
|
|
$_.Value.basever -match "^3\.0\.[0-9]+" -and
|
|
|
|
$_.Value.bits -eq "64" -and
|
|
|
|
$_.Value.arch -eq "INTEL" -and
|
|
|
|
$_.Value.installer -eq "exe" -and
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
-not $_.Value.light
|
2024-04-12 01:32:40 +02:00
|
|
|
} | Select-Object Value | Select -First 1).PSObject.Properties.Value
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
|
|
|
|
Write-Host "Latest OpenSSL 3.0:" ($source | Format-List | Out-String)
|
|
|
|
|
|
|
|
$destination = "C:\ovs-build-downloads\Win64OpenSSL.exe"
|
|
|
|
if (Test-Path $destination) {
|
|
|
|
$fileHash = (Get-FileHash $destination -Algorithm SHA256).Hash.ToLower()
|
|
|
|
if ($fileHash -ne $source.sha256) {
|
|
|
|
Write-Host "Cache miss:" $fileHash "!=" $source.sha256
|
|
|
|
Remove-Item -Path $destination
|
|
|
|
}
|
|
|
|
}
|
2015-02-05 09:49:26 -08:00
|
|
|
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
if (Test-Path $destination) {
|
|
|
|
Write-Host "Using cached:" $destination
|
|
|
|
} else {
|
|
|
|
Write-Host "Downloading:" $source.url
|
|
|
|
Invoke-WebRequest $source.url -OutFile $destination
|
|
|
|
}
|
|
|
|
|
|
|
|
Write-Host "Installing:" $destination
|
|
|
|
Start-Process -FilePath $destination `
|
|
|
|
-ArgumentList "/silent /verysilent /sp- /suppressmsgboxes" -Wait
|
2015-02-05 09:49:26 -08:00
|
|
|
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: git clone -q https://git.code.sf.net/p/pthreads4w/code c:\pthreads4w-code
|
|
|
|
- ps: python3 -m pip install pypiwin32 --disable-pip-version-check
|
2020-09-24 09:22:38 +03:00
|
|
|
- '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"'
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: C:\msys64\msys2_shell.cmd -here -defterm -no-start -use-full-path -c
|
|
|
|
".ci/windows-prepare.sh 2>&1"
|
appveyor: Build with OpenSSL 3.0.
OpenSSL 1.0.2u is long deprecated and not available for download.
So, our CI never actually downloads it and uses whatever is in the
OpenSSL-Win64 folder provided by AppVeyor. Luckily, it happens to
be OpenSSL 1.0.2u today.
The oldest supported version of OpenSSL upstream today is 3.0.
And it is an LTS version. 3.1 and 3.2 are not LTS.
Use OpenSSL 3.0 for testing instead.
This commit does a few things to achieve that:
1. Removes the folder provided by AppVeyor. This way we will fail
the build if something goes wrong instead of silently using
OpenSSL version provided by AppVeyor.
2. Obtains the JSON description of available releases and downloads
the latest minor version of OpenSSL 3.0 64-bit. With this approach
we should not need to update the download link that frequently.
New minor releases will be picked up automatically. They should
not have any breaking changes, so should be fine to use in CI.
OpenSSL 3.0 is supported until at least Sep 2026.
The JSON file is an official file referenced on the:
https://slproweb.com/products/Win32OpenSSL.html
So, it should be safe to use.
3. Executes the downloaded installer with 'Start-Process -Wait' to
properly wait for installation to finish instead of just sleeping
for 30 seconds.
4. Caches the downloaded installer, so we're not downloading 300 MB
on each CI run as that is not nice to do. We know the hash of the
latest version, so we will re-download only when the binary changes,
i.e. on a new minor release.
For the cache to work we need to introduce the 'install' phase,
because caches are populated after 'init', but before 'install'.
Alternatively, we could have just renamed 'init' to 'install',
but I think it's a little nicer to have separate phases, and we
can also move 'windows-prepare.sh' to the install phase.
Cache is also invalidated whenever appveyor.yml changes.
Acked-by: Simon Horman <horms@ovn.org>
Acked-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-03-01 22:10:40 +01:00
|
|
|
|
|
|
|
build_script:
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: C:\msys64\msys2_shell.cmd -here -defterm -no-start -use-full-path -c
|
|
|
|
".ci/windows-build.sh $env:CONFIGURATION 2>&1"
|
|
|
|
- ps: cp C:\PTHREADS-BUILT\bin\pthreadVC3.dll C:\openvswitch\usr\bin
|
|
|
|
- ps: cp C:\PTHREADS-BUILT\bin\pthreadVC3.dll C:\openvswitch\usr\sbin
|
|
|
|
- ps: mkdir C:\openvswitch\driver
|
|
|
|
- ps: cp datapath-windows\x64\Win10$env:CONFIGURATION\package\* C:\openvswitch\driver
|
|
|
|
- ps: cp datapath-windows\x64\Win10$env:CONFIGURATION\package.cer C:\openvswitch\driver
|
|
|
|
- ps: cp datapath-windows\misc\* C:\openvswitch\driver
|
|
|
|
- ps: cp windows\ovs-windows-installer\bin\x64\Release\OpenvSwitch.msi
|
|
|
|
c:\OpenvSwitch-$env:CONFIGURATION.msi
|
2020-09-24 09:24:03 +03:00
|
|
|
|
|
|
|
after_build:
|
2024-03-22 15:11:17 +00:00
|
|
|
- ps: 7z a C:\ovs-main-$env:CONFIGURATION.zip C:\openvswitch
|
|
|
|
- ps: Push-AppveyorArtifact C:\ovs-main-$env:CONFIGURATION.zip
|
appveyor: Move from MinGW 32bit to msys64.
AppVeyor is planning to remove support for MinGW 32bit soon. And we
had a couple of incidents where it wasn't available already, so we
moved to a 'Previous' image.
Move to msys64 instead.
While at it making the CI scripts a little nicer, moving the non-Windows
parts of the preparation and build to separate files.
MSYS2 has its own version of python. However, we do not support
building on Windows with non-Windows python build. The main issue is
the delimiter symbol in PYTHONPATH. In Windows version it has to be
';', while the python supplied with MSYS2 uses ':' as on Linux, while
we detect Windows and pass ';' during the build. Renaming the binary,
so the Windows version is used.
Additionally switched to Python 3.12, 3.7 reached EoL some time back,
though it's still available in AppVeyor.
The stderr has to be redirected to stdout for scripts, because any
message on stderr is treated as fatal failure by PowerShell.
Scripts are running with 'set -e', so a failure of individual
commands will fail the script.
The OpenSSL download is still failing, but it is out of scope for
this change.
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2024-02-09 21:47:26 +01:00
|
|
|
- ps: Push-AppveyorArtifact C:\OpenvSwitch-$env:CONFIGURATION.msi
|