adapt weekly build workflow to do normal releases too, rename accordingly skip macos singning setup if certificate not available (useful to run on forks) add missing dmgbuild dependency for badge icons on macos build windows installer in workflow, add needed dependencies to pixi.toml reorganize packaging scripts that can be useful outside rattler-build too do some cleanup add .gitignore to rattler-build Properly configure appimage updating depending on release type and upload zsync file
101 lines
3.4 KiB
Bash
Executable File
101 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -x
|
|
|
|
conda_env="AppDir/usr"
|
|
|
|
mkdir -p ${conda_env}
|
|
|
|
cp -a ../.pixi/envs/default/* ${conda_env}
|
|
|
|
echo -e "\nDelete unnecessary stuff"
|
|
rm -rf ${conda_env}/include
|
|
find ${conda_env} -name \*.a -delete
|
|
|
|
mv ${conda_env}/bin ${conda_env}/bin_tmp
|
|
mkdir ${conda_env}/bin
|
|
cp ${conda_env}/bin_tmp/freecad ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/freecadcmd ${conda_env}/bin
|
|
cp ${conda_env}/bin_tmp/ccx ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/python ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/pip ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/pyside6-rcc ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/gmsh ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/dot ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/unflatten ${conda_env}/bin/
|
|
rm -rf ${conda_env}/bin_tmp
|
|
|
|
sed -i '1s|.*|#!/usr/bin/env python|' ${conda_env}/bin/pip
|
|
|
|
echo -e "\nCopying Icon and Desktop file"
|
|
cp ${conda_env}/share/applications/org.freecad.FreeCAD.desktop AppDir/
|
|
sed -i 's/Exec=FreeCAD/Exec=AppRun/g' AppDir/org.freecad.FreeCAD.desktop
|
|
cp ${conda_env}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg AppDir/
|
|
|
|
# Remove __pycache__ folders and .pyc files
|
|
find . -path "*/__pycache__/*" -delete
|
|
find . -name "*.pyc" -type f -delete
|
|
|
|
# reduce size
|
|
rm -rf ${conda_env}/conda-meta/
|
|
rm -rf ${conda_env}/doc/global/
|
|
rm -rf ${conda_env}/share/gtk-doc/
|
|
rm -rf ${conda_env}/lib/cmake/
|
|
|
|
find . -name "*.h" -type f -delete
|
|
find . -name "*.cmake" -type f -delete
|
|
|
|
python_version=$(${conda_env}/bin/python -c 'import platform; print("py" + platform.python_version_tuple()[0] + platform.python_version_tuple()[1])')
|
|
version_name="FreeCAD_${BUILD_TAG}-Linux-$(uname -m)-${python_version}"
|
|
|
|
echo -e "\################"
|
|
echo -e "version_name: ${version_name}"
|
|
echo -e "################"
|
|
|
|
pixi list -e default > AppDir/packages.txt
|
|
sed -i "1s/.*/\nLIST OF PACKAGES:/" AppDir/packages.txt
|
|
|
|
curl -LO https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage
|
|
chmod a+x appimagetool-$(uname -m).AppImage
|
|
|
|
if [ "${UPLOAD_RELEASE}" == "true" ]; then
|
|
case "${BUILD_TAG}" in
|
|
*weekly*)
|
|
GH_UPDATE_TAG="weeklies"
|
|
;;
|
|
*rc*)
|
|
GH_UPDATE_TAG="${BUILD_TAG}"
|
|
;;
|
|
*)
|
|
GH_UPDATE_TAG="latest"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo -e "\nCreate the appimage"
|
|
# export GPG_TTY=$(tty)
|
|
chmod a+x ./AppDir/AppRun
|
|
./appimagetool-$(uname -m).AppImage \
|
|
--comp zstd \
|
|
--mksquashfs-opt -Xcompression-level \
|
|
--mksquashfs-opt 22 \
|
|
-u "gh-releases-zsync|FreeCAD|FreeCAD|${GH_UPDATE_TAG}|FreeCAD*$(uname -m)*.AppImage.zsync" \
|
|
AppDir ${version_name}.AppImage
|
|
# -s --sign-key ${GPG_KEY_ID} \
|
|
|
|
echo -e "\nCreate hash"
|
|
sha256sum ${version_name}.AppImage > ${version_name}.AppImage-SHA256.txt
|
|
|
|
if [ "${UPLOAD_RELEASE}" == "true" ]; then
|
|
gh release upload --clobber ${BUILD_TAG} "${version_name}.AppImage" "${version_name}.AppImage.zsync" "${version_name}.AppImage-SHA256.txt"
|
|
if [ "${GH_UPDATE_TAG}" == "weeklies" ]; then
|
|
generic_name="FreeCAD_weekly-Linux-$(uname -m)"
|
|
mv "${version_name}.AppImage" "${generic_name}.AppImage"
|
|
mv "${version_name}.AppImage.zsync" "${generic_name}.AppImage.zsync"
|
|
mv "${version_name}.AppImage-SHA256.txt" "${generic_name}.AppImage-SHA256.txt"
|
|
gh release create weeklies --prerelease | true
|
|
gh release upload --clobber weeklies "${generic_name}.AppImage" "${generic_name}.AppImage.zsync" "${generic_name}.AppImage-SHA256.txt"
|
|
fi
|
|
fi
|