Jenkins: More optimizations + ability for node preconditioning
This commit is contained in:
57
.ci/build.sh
57
.ci/build.sh
@@ -728,7 +728,9 @@ then
|
|||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run actual build.
|
# Run actual build, unless we're running a dry build to precondition a node.
|
||||||
|
if [ "$BUILD_TAG" != "precondition" ]
|
||||||
|
then
|
||||||
echo [-] Running build
|
echo [-] Running build
|
||||||
cmake --build build -j$(nproc)
|
cmake --build build -j$(nproc)
|
||||||
status=$?
|
status=$?
|
||||||
@@ -737,23 +739,35 @@ then
|
|||||||
echo [!] Build failed with status [$status]
|
echo [!] Build failed with status [$status]
|
||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
# Copy dummy binary into place.
|
||||||
|
echo [-] Preconditioning build node
|
||||||
|
mkdir -p build/src
|
||||||
|
if is_windows
|
||||||
|
then
|
||||||
|
cp "$(which cp)" "build/src/$project.exe"
|
||||||
|
elif is_mac
|
||||||
|
then
|
||||||
|
# Special check during app bundle generation.
|
||||||
|
else
|
||||||
|
cp "$(which cp)" "build/src/$project"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Download Discord Game SDK from their CDN if we're in a new build.
|
# Download Discord Game SDK from their CDN if we're in a new build.
|
||||||
discord_zip="$cache_dir/discord_game_sdk.zip"
|
discord_version="3.2.1"
|
||||||
if check_buildtag discord
|
discord_zip="$cache_dir/discord_game_sdk-$discord_version.zip"
|
||||||
|
if [ ! -e "$discord_zip" ]
|
||||||
then
|
then
|
||||||
# Download file.
|
# Download file.
|
||||||
echo [-] Downloading Discord Game SDK
|
echo [-] Downloading Discord Game SDK
|
||||||
wget -qO "$discord_zip" "https://dl-game-sdk.discordapp.net/latest/discord_game_sdk.zip"
|
rm -f "$cache_dir/discord_game_sdk"* # remove old versions
|
||||||
|
wget -qO "$discord_zip" "https://dl-game-sdk.discordapp.net/$discord_version/discord_game_sdk.zip"
|
||||||
status=$?
|
status=$?
|
||||||
if [ $status -ne 0 ]
|
if [ $status -ne 0 ]
|
||||||
then
|
then
|
||||||
echo [!] Discord Game SDK download failed with status [$status]
|
echo [!] Discord Game SDK download failed with status [$status]
|
||||||
rm -f "$discord_zip"
|
rm -f "$discord_zip"
|
||||||
else
|
|
||||||
# Save build tag to skip this later. Doing it here (once everything is
|
|
||||||
# in place) is important to avoid potential issues with retried builds.
|
|
||||||
save_buildtag discord
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo [-] Not downloading Discord Game SDK again
|
echo [-] Not downloading Discord Game SDK again
|
||||||
@@ -830,6 +844,10 @@ then
|
|||||||
|
|
||||||
# Sign app bundle, unless we're in an universal build.
|
# Sign app bundle, unless we're in an universal build.
|
||||||
[ $skip_archive -eq 0 ] && codesign --force --deep -s - "archive_tmp/"*".app"
|
[ $skip_archive -eq 0 ] && codesign --force --deep -s - "archive_tmp/"*".app"
|
||||||
|
elif [ "$BUILD_TAG" = "precondition" ]
|
||||||
|
then
|
||||||
|
# Continue with no app bundle on a dry build.
|
||||||
|
status=0
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
cwd_root="$(pwd)"
|
cwd_root="$(pwd)"
|
||||||
@@ -842,6 +860,7 @@ else
|
|||||||
prefix="$cache_dir/openal-soft-1.21.1"
|
prefix="$cache_dir/openal-soft-1.21.1"
|
||||||
if [ ! -d "$prefix" ]
|
if [ ! -d "$prefix" ]
|
||||||
then
|
then
|
||||||
|
rm -rf "$cache_dir/openal-soft-"* # remove old versions
|
||||||
wget -qO - https://github.com/kcat/openal-soft/archive/refs/tags/1.21.1.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
wget -qO - https://github.com/kcat/openal-soft/archive/refs/tags/1.21.1.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
||||||
fi
|
fi
|
||||||
prefix_build="$prefix/build-$arch_deb"
|
prefix_build="$prefix/build-$arch_deb"
|
||||||
@@ -857,6 +876,7 @@ else
|
|||||||
prefix="$cache_dir/FAudio-22.03"
|
prefix="$cache_dir/FAudio-22.03"
|
||||||
if [ ! -d "$prefix" ]
|
if [ ! -d "$prefix" ]
|
||||||
then
|
then
|
||||||
|
rm -rf "$cache_dir/FAudio-"* # remove old versions
|
||||||
wget -qO - https://github.com/FNA-XNA/FAudio/archive/refs/tags/22.03.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
wget -qO - https://github.com/FNA-XNA/FAudio/archive/refs/tags/22.03.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
||||||
fi
|
fi
|
||||||
prefix_build="$prefix/build-$arch_deb"
|
prefix_build="$prefix/build-$arch_deb"
|
||||||
@@ -876,6 +896,7 @@ else
|
|||||||
prefix="$cache_dir/rtmidi-4.0.0"
|
prefix="$cache_dir/rtmidi-4.0.0"
|
||||||
if [ ! -d "$prefix" ]
|
if [ ! -d "$prefix" ]
|
||||||
then
|
then
|
||||||
|
rm -rf "$cache_dir/rtmidi-"* # remove old versions
|
||||||
wget -qO - https://github.com/thestk/rtmidi/archive/refs/tags/4.0.0.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
wget -qO - https://github.com/thestk/rtmidi/archive/refs/tags/4.0.0.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
||||||
fi
|
fi
|
||||||
prefix_build="$prefix/build-$arch_deb"
|
prefix_build="$prefix/build-$arch_deb"
|
||||||
@@ -888,6 +909,7 @@ else
|
|||||||
prefix="$cache_dir/SDL2-2.0.20"
|
prefix="$cache_dir/SDL2-2.0.20"
|
||||||
if [ ! -d "$prefix" ]
|
if [ ! -d "$prefix" ]
|
||||||
then
|
then
|
||||||
|
rm -rf "$cache_dir/SDL2-"* # remove old versions
|
||||||
wget -qO - https://www.libsdl.org/release/SDL2-2.0.20.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
wget -qO - https://www.libsdl.org/release/SDL2-2.0.20.tar.gz | tar zxf - -C "$cache_dir" || rm -rf "$prefix"
|
||||||
fi
|
fi
|
||||||
prefix_build="$cache_dir/SDL2-2.0.20-build-$arch_deb"
|
prefix_build="$cache_dir/SDL2-2.0.20-build-$arch_deb"
|
||||||
@@ -1018,12 +1040,18 @@ EOF
|
|||||||
done < .ci/AppImageBuilder.yml
|
done < .ci/AppImageBuilder.yml
|
||||||
|
|
||||||
# Download appimage-builder if necessary.
|
# Download appimage-builder if necessary.
|
||||||
[ ! -e "appimage-builder.AppImage" ] && wget -qO appimage-builder.AppImage \
|
appimage_builder_url="https://github.com/AppImageCrafters/appimage-builder/releases/download/v0.9.2/appimage-builder-0.9.2-35e3eab-x86_64.AppImage"
|
||||||
https://github.com/AppImageCrafters/appimage-builder/releases/download/v0.9.2/appimage-builder-0.9.2-35e3eab-x86_64.AppImage
|
appimage_builder_binary="$cache_dir/$(basename "$appimage_builder_url")"
|
||||||
chmod u+x appimage-builder.AppImage
|
if [ ! -e "$appimage_builder_binary" ]
|
||||||
|
then
|
||||||
|
rm -rf "$cache_dir/"*".AppImage" # remove old versions
|
||||||
|
wget -qO "$appimage_builder_binary" "$appimage_builder_url"
|
||||||
|
fi
|
||||||
|
|
||||||
# Symlink global cache directory.
|
# Symlink appimage-builder binary and global cache directory.
|
||||||
rm -rf appimage-builder-cache "$project-"*".AppImage" # also remove any dangling AppImages which may interfere with the renaming process
|
rm -rf appimage-builder.AppImage appimage-builder-cache "$project-"*".AppImage" # also remove any dangling AppImages which may interfere with the renaming process
|
||||||
|
ln -s "$appimage_builder_binary" appimage-builder.AppImage
|
||||||
|
chmod u+x appimage-builder.AppImage
|
||||||
mkdir -p "$cache_dir/appimage-builder-cache"
|
mkdir -p "$cache_dir/appimage-builder-cache"
|
||||||
ln -s "$cache_dir/appimage-builder-cache" appimage-builder-cache
|
ln -s "$cache_dir/appimage-builder-cache" appimage-builder-cache
|
||||||
|
|
||||||
@@ -1037,6 +1065,9 @@ EOF
|
|||||||
then
|
then
|
||||||
mv "$project-"*".AppImage" "$cwd/$package_name.AppImage"
|
mv "$project-"*".AppImage" "$cwd/$package_name.AppImage"
|
||||||
status=$?
|
status=$?
|
||||||
|
else
|
||||||
|
# Remove appimage-builder binary just in case it's corrupted.
|
||||||
|
rm -f "$appimage_builder_binary"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user