ci/windows: Build all the crates at once

In gst-rs we build each crate on its own, since not all
crates share the same features and some conflict with each other.

However currently, that isn't the case in plugins-rs and instead
we can be building all the crates with the same flags and simplify
the the script.

Close #241
This commit is contained in:
Jordan Petridis 2022-09-10 11:21:37 +03:00
parent f966b3a573
commit 165f3a788b
2 changed files with 21 additions and 64 deletions

View file

@ -268,12 +268,12 @@ gst-build:
- '2022'
parallel:
matrix:
- FEATURES:
- CI_CARGO_FEATURES:
- "--no-default-features"
- "--all-features"
- ""
script:
- echo $env:FEATURES
- echo $env:CI_CARGO_FEATURES
# Set the code page to UTF-8
- chcp 65001

View file

@ -1,69 +1,26 @@
$env:ErrorActionPreference='Stop'
# List of all the crates we want to build
# We need to do this manually to avoid trying
# to build the ones which can't work on windows
[string[]] $crates = @(
# Same as default-members in Cargo.toml
"tutorial",
"version-helper",
"audio/audiofx",
"audio/claxon",
"audio/lewton",
"generic/file",
"generic/fmp4",
"generic/threadshare",
"net/onvif",
"net/raptorq",
"net/reqwest",
"net/aws",
"utils/fallbackswitch",
"utils/togglerecord",
"utils/tracers",
"utils/uriplaylistbin",
"video/cdg",
"video/ffv1",
"video/flavors",
"video/gif",
"video/rav1e",
"video/rspng",
"video/hsv",
"text/ahead",
"text/wrap",
"text/json",
"text/regex",
# Extra crates that can be built
# "audio/csound",
"audio/spotify",
"generic/sodium",
"net/hlssink3",
"video/closedcaption",
"video/dav1d",
"video/gtk4",
"video/videofx"
# "video/webp",
$exclude_crates = @(
"--exclude",
"gst-plugin-csound",
"--exclude",
"gst-plugin-webp"
)
foreach($crate in $crates)
{
Write-Host "Building crate: $crate"
Write-Host "Features: $env:FEATURES"
$env:LocalFeatures = $env:FEATURES
Write-Host "Features: $env:CI_CARGO_FEATURES"
Write-Host "Exlcude string: $exclude_crates"
Write-Host "with features: $env:LocalFeatures"
cargo build --color=always --manifest-path $crate/Cargo.toml --all-targets $env:LocalFeatures
cargo build --color=always --workspace $exclude_crates --all-targets $env:CI_CARGO_FEATURES
if (!$?) {
Write-Host "Failed to build crate: $crate"
Exit 1
}
$env:G_DEBUG="fatal_warnings"
cargo test --no-fail-fast --color=always --manifest-path $crate/Cargo.toml --all-targets $env:LocalFeatures
if (!$?) {
Write-Host "Tests failed to for crate: $crate"
Exit 1
}
if (!$?) {
Write-Host "Build failed"
Exit 1
}
$env:G_DEBUG="fatal_warnings"
cargo test --no-fail-fast --color=always --workspace $exclude_crates --all-targets $env:CI_CARGO_FEATURES
if (!$?) {
Write-Host "Tests failed"
Exit 1
}