mirror of
https://github.com/spacedriveapp/spacedrive
synced 2024-07-02 11:13:29 +00:00
Fix Windows CI (#1695)
* Add Nasm to setup.ps1 - Nasm is now required to compile the `openssl-sys` crate * Run Clippy CI when setup or prep scripts change * Ensure nasm is also installed in Windows CI - Add nasm to setup.sh - Remove openssl-dev from setup.sh * Ensure nasm is installed in macOS too * Dumb ctrl+c/ctrl+v mistake * 's/==/=/'
This commit is contained in:
parent
aa2997d7d8
commit
3d3f333b64
4
.github/actions/setup-system/action.yml
vendored
4
.github/actions/setup-system/action.yml
vendored
|
@ -42,6 +42,10 @@ runs:
|
||||||
key: ${{ steps.cache-llvm-restore.outputs.cache-primary-key }}
|
key: ${{ steps.cache-llvm-restore.outputs.cache-primary-key }}
|
||||||
path: C:/Program Files/LLVM
|
path: C:/Program Files/LLVM
|
||||||
|
|
||||||
|
- name: Install Nasm
|
||||||
|
if: ${{ runner.os != 'Linux' }}
|
||||||
|
uses: ilammy/setup-nasm@v1
|
||||||
|
|
||||||
- name: Setup Rust and Dependencies
|
- name: Setup Rust and Dependencies
|
||||||
uses: ./.github/actions/setup-rust
|
uses: ./.github/actions/setup-rust
|
||||||
with:
|
with:
|
||||||
|
|
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -125,6 +125,8 @@ jobs:
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
changes:
|
changes:
|
||||||
|
- ${{ runner.os == 'Windows' && 'scripts/setup.ps1' || 'scripts/setup.sh' }}
|
||||||
|
- 'scripts/preprep.mjs'
|
||||||
- 'apps/cli/*/**'
|
- 'apps/cli/*/**'
|
||||||
- 'apps/desktop/crates/*/**'
|
- 'apps/desktop/crates/*/**'
|
||||||
- 'apps/desktop/src-tauri/*/**'
|
- 'apps/desktop/src-tauri/*/**'
|
||||||
|
|
|
@ -101,7 +101,7 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check system winget version is greater or equal to v1.4.10052
|
# Check system winget version is greater or equal to v1.4.10052
|
||||||
$wingetVersion = [Version]((winget --version) -replace '.*?(\d+)\.(\d+)\.(\d+).*', '$1.$2.$3')
|
$wingetVersion = [Version]((winget --version) -replace '.*?(\d+)\.(\d+)\.(\d+).*', '$1.$2.$3')
|
||||||
$requiredVersion = [Version]'1.4.10052'
|
$requiredVersion = [Version]'1.4.10052'
|
||||||
if ($wingetVersion.CompareTo($requiredVersion) -lt 0) {
|
if ($wingetVersion.CompareTo($requiredVersion) -lt 0) {
|
||||||
$errorMessage = "You need to update your winget to version $requiredVersion or higher."
|
$errorMessage = "You need to update your winget to version $requiredVersion or higher."
|
||||||
|
@ -152,6 +152,15 @@ https://learn.microsoft.com/windows/package-manager/winget/
|
||||||
$LASTEXITCODE = 0
|
$LASTEXITCODE = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Write-Host
|
||||||
|
Write-Host 'Installing Nasm...' -ForegroundColor Yellow
|
||||||
|
winget install -e --accept-source-agreements --disable-interactivity --id NASM.NASM
|
||||||
|
if (-not ($wingetValidExit -contains $LASTEXITCODE)) {
|
||||||
|
Exit-WithError 'Failed to install Nasm'
|
||||||
|
} else {
|
||||||
|
$LASTEXITCODE = 0
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host
|
Write-Host
|
||||||
Write-Host 'Installing Strawberry perl...' -ForegroundColor Yellow
|
Write-Host 'Installing Strawberry perl...' -ForegroundColor Yellow
|
||||||
winget install -e --accept-source-agreements --disable-interactivity --id StrawberryPerl.StrawberryPerl
|
winget install -e --accept-source-agreements --disable-interactivity --id StrawberryPerl.StrawberryPerl
|
||||||
|
|
|
@ -101,6 +101,13 @@ fi
|
||||||
# Install system deps
|
# Install system deps
|
||||||
case "$(uname)" in
|
case "$(uname)" in
|
||||||
"Darwin")
|
"Darwin")
|
||||||
|
if [ "$(uname -m)" = 'x86_64' ]; then (
|
||||||
|
if [ "${CI:-}" = "true" ]; then
|
||||||
|
export NONINTERACTIVE=1
|
||||||
|
fi
|
||||||
|
brew install nasm
|
||||||
|
); fi
|
||||||
|
|
||||||
# Install rust deps for iOS
|
# Install rust deps for iOS
|
||||||
if [ $MOBILE -eq 1 ]; then
|
if [ $MOBILE -eq 1 ]; then
|
||||||
echo "Checking for Xcode..."
|
echo "Checking for Xcode..."
|
||||||
|
@ -124,7 +131,7 @@ case "$(uname)" in
|
||||||
echo "Installing dependencies with apt..."
|
echo "Installing dependencies with apt..."
|
||||||
|
|
||||||
# Tauri dependencies
|
# Tauri dependencies
|
||||||
set -- build-essential curl wget file patchelf libssl-dev libgtk-3-dev librsvg2-dev \
|
set -- build-essential curl wget file patchelf openssl libssl-dev libgtk-3-dev librsvg2-dev \
|
||||||
libwebkit2gtk-4.0-dev libayatana-appindicator3-dev
|
libwebkit2gtk-4.0-dev libayatana-appindicator3-dev
|
||||||
|
|
||||||
# FFmpeg dependencies
|
# FFmpeg dependencies
|
||||||
|
@ -138,8 +145,8 @@ case "$(uname)" in
|
||||||
gstreamer1.0-vaapi libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
gstreamer1.0-vaapi libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
||||||
libgstreamer-plugins-bad1.0-dev
|
libgstreamer-plugins-bad1.0-dev
|
||||||
|
|
||||||
# Bindgen dependencies - it's used by a dependency of Spacedrive
|
# C/C++ build dependencies, required to build some *-sys crates
|
||||||
set -- "$@" llvm-dev libclang-dev clang
|
set -- "$@" llvm-dev libclang-dev clang nasm
|
||||||
|
|
||||||
sudo apt-get -y update
|
sudo apt-get -y update
|
||||||
sudo apt-get -y install "$@"
|
sudo apt-get -y install "$@"
|
||||||
|
@ -157,9 +164,9 @@ case "$(uname)" in
|
||||||
set -- "$@" gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly \
|
set -- "$@" gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly \
|
||||||
gst-plugin-pipewire gstreamer-vaapi
|
gst-plugin-pipewire gstreamer-vaapi
|
||||||
|
|
||||||
# Bindgen dependencies - it's used by a dependency of Spacedrive
|
# C/C++ build dependencies, required to build some *-sys crates
|
||||||
set -- "$@" clang
|
set -- "$@" clang nasm
|
||||||
|
|
||||||
# React dependencies
|
# React dependencies
|
||||||
set -- "$@" libvips
|
set -- "$@" libvips
|
||||||
|
|
||||||
|
@ -183,9 +190,7 @@ case "$(uname)" in
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Tauri dependencies
|
# Tauri dependencies
|
||||||
# openssl is manually declared here as i don't think openssl and openssl-devel are actually dependant on eachother
|
set -- openssl curl wget file patchelf libappindicator-gtk3-devel librsvg2-devel
|
||||||
# openssl also has a habit of being missing from some of my fresh Fedora installs - i've had to install it at least twice
|
|
||||||
set -- openssl openssl-devel curl wget file patchelf libappindicator-gtk3-devel librsvg2-devel
|
|
||||||
|
|
||||||
# Webkit2gtk requires gstreamer plugins for video playback to work
|
# Webkit2gtk requires gstreamer plugins for video playback to work
|
||||||
set -- "$@" gstreamer1-devel gstreamer1-plugins-base-devel \
|
set -- "$@" gstreamer1-devel gstreamer1-plugins-base-devel \
|
||||||
|
@ -194,8 +199,8 @@ case "$(uname)" in
|
||||||
gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel \
|
gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel \
|
||||||
gstreamer1-plugins-bad-free-extras
|
gstreamer1-plugins-bad-free-extras
|
||||||
|
|
||||||
# Bindgen dependencies - it's used by a dependency of Spacedrive
|
# C/C++ build dependencies, required to build some *-sys crates
|
||||||
set -- "$@" clang clang-devel
|
set -- "$@" clang clang-devel nasm
|
||||||
|
|
||||||
sudo dnf install "$@"
|
sudo dnf install "$@"
|
||||||
|
|
||||||
|
@ -205,9 +210,6 @@ case "$(uname)" in
|
||||||
'This is likely because the RPM Fusion free repository is not enabled.' \
|
'This is likely because the RPM Fusion free repository is not enabled.' \
|
||||||
'https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion'
|
'https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# required for building the openssl-sys crate
|
|
||||||
# perl-FindBin perl-File-Compare perl-IPC-Cmd perl-File-Copy
|
|
||||||
else
|
else
|
||||||
if has lsb_release; then
|
if has lsb_release; then
|
||||||
_distro="'$(lsb_release -s -d)' "
|
_distro="'$(lsb_release -s -d)' "
|
||||||
|
|
Loading…
Reference in a new issue