1+ name : Release
2+
3+ on :
4+ pull_request :
5+ branches :
6+ - ' **'
7+
8+ jobs :
9+ build :
10+ runs-on : ubuntu-20.04
11+
12+ steps :
13+ - name : Checkout code
14+ uses : actions/checkout@v3
15+
16+ - name : Checkout BMF repository (specific branch)
17+ run : |
18+ sudo apt update
19+ sudo apt install -y make git pkg-config libssl-dev cmake binutils-dev libgoogle-glog-dev gcc g++ golang wget libgl1
20+ sudo apt install -y python3.9 python3-dev python3-pip libsndfile1 libsndfile1-dev
21+ # sudo python3 -m pip install timeout_decorator numpy onnxruntime pytest opencv-python librosa
22+
23+ git clone https://github.com/JackLau1222/bmf.git
24+ (cd bmf && git checkout fork_by_oc && sudo scripts/build_ffmpeg.sh nasm yasm x264 x265 opus && ./build.sh )
25+ # setup bmf root path
26+ # echo "BMF_ROOT_PATH=${BMF_ROOT_PATH}:$(pwd)/bmf/output/bmf" >> $GITHUB_ENV
27+ # export BMF_ROOT_PATH=${BMF_ROOT_PATH}:$(pwd)/bmf/output/bmf
28+ cd bmf
29+ echo "C_INCLUDE_PATH=${C_INCLUDE_PATH}:$(pwd)/output/bmf/include" >> $GITHUB_ENV
30+ echo "CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:$(pwd)/output/bmf/include" >> $GITHUB_ENV
31+ echo "LIBRARY_PATH=${LIBRARY_PATH}:$(pwd)/output/bmf/lib" >> $GITHUB_ENV
32+ echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$(pwd)/output/bmf/lib" >> $GITHUB_ENV
33+
34+
35+ - name : Set up Qt
36+ run : |
37+ sudo apt-get install -y qt5-qmake qtbase5-dev qtchooser qtbase5-dev-tools cmake build-essential
38+
39+ - name : Build with CMake
40+ run : |
41+ (cd src && cmake -B build && cd build && make -j$(nproc))
42+
43+ - name : Copy libs
44+ run : |
45+ # linuxdeployqt
46+ sudo apt-get -y install git g++ libgl1-mesa-dev
47+ git clone https://github.com/probonopd/linuxdeployqt.git
48+ # Then build in Qt Creator, or use
49+ export PATH=$(readlink -f /tmp/.mount_QtCreator-*-x86_64/*/gcc_64/bin/):$PATH
50+ (cd linuxdeployqt && qmake && make && sudo make install)
51+ # patchelf
52+ wget https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2
53+ tar xf patchelf-0.9.tar.bz2
54+ ( cd patchelf-0.9/ && ./configure && make && sudo make install )
55+ # appimage
56+ sudo wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /usr/local/bin/appimagetool
57+ sudo chmod a+x /usr/local/bin/appimagetool
58+ (linuxdeployqt/bin/linuxdeployqt ./src/build/OpenConverter -appimage)
59+ continue-on-error : true
60+
61+
62+ - name : Copy runtime
63+ run : |
64+ # mkdir /src/build/lib
65+ cp /usr/local/lib/libswscale.so.6 src/build/lib
66+ cp /usr/local/lib/libavfilter.so.8 src/build/lib
67+ cp /usr/local/lib/libpostproc.so.56 src/build/lib
68+ cp bmf/output/bmf/lib/libbuiltin_modules.so src/build/lib
69+ touch src/build/activate_env.sh
70+ echo export LD_LIBRARY_PATH="$BASEDIR/lib" >> src/build/activate_env.sh
71+
72+ # Step to package the build directory
73+ - name : Create tar.gz package
74+ run : |
75+ BUILD_DIR="src/build"
76+ PACKAGE_NAME="OpenConverter_Linux_x86.tar.gz"
77+ tar -czvf $PACKAGE_NAME -C $BUILD_DIR .
78+
79+ # Step to upload the tar.gz package as an artifact
80+ - name : Upload build artifact
81+ uses : actions/upload-artifact@v3
82+ with :
83+ name : OpenConverter_Linux_x86
84+ path : OpenConverter_Linux_x86.tar.gz
85+
86+ - name : Finish
87+ run : echo "Release upload complete"
0 commit comments