name: Linuax Package on: push: tags: - 'opentrack-*' workflow_dispatch: env: build_type: Release onnx_version: 1.21.0 onnx_prefix: onnxruntime-linux-x64 file_name: '' # to disable warning in case of a linter Qt5_DIR: '' # to disable warning in case of a linter jobs: Package: runs-on: ubuntu-22.04 steps: - name: Clone opentrack/opentrack uses: actions/checkout@v4 - name: Clone opentrack/depends uses: actions/checkout@v4 with: repository: opentrack/opentrack-depends submodules: true path: opentrack-depends - name: Install Dependencies run: | sudo apt-get update sudo apt-get install libprocps-dev libopencv-dev wine64-tools wget -q https://github.com/microsoft/onnxruntime/releases/download/v${{env.onnx_version}}/${{env.onnx_prefix}}-${{env.onnx_version}}.tgz tar xzf ${{env.onnx_prefix}}-${{env.onnx_version}}.tgz - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: 5.15 archives: icu qtbase qttools qtserialport - name: Configure and Build run: | cmake -S . -B build \ -DCMAKE_BUILD_TYPE=${{env.build_type}} \ -DONNXRuntime_DIR=${{env.onnx_prefix}}-${{env.onnx_version}} \ -DQt5_DIR=${{env.Qt5_DIR}} cmake --build build --config ${{env.build_type}} --target install -- -j $(nproc) - name: Pack run: | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/${{env.onnx_prefix}}-${{env.onnx_version}}/lib # required by linuxdeployqt sudo apt-get install libfuse2 wget -q https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage chmod +x linuxdeployqt-*.AppImage cd build/install/ ln -s $(pwd)/libexec/opentrack $(pwd)/lib ../../linuxdeployqt-*.AppImage bin/opentrack -bundle-non-qt-libs -unsupported-allow-new-glibc rm lib echo '#!/bin/sh' >> opentrack echo 'CURRENT_PATH="$(dirname "$(readlink -f "$0")")"' >> opentrack echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CURRENT_PATH/libexec/opentrack' >> opentrack echo '"$CURRENT_PATH/bin/opentrack" "$@"' >> opentrack chmod +x opentrack if [[ ${{github.ref_name}} =~ ^opentrack.*$ ]]; then file_name=${{github.ref_name}}-linux.tar.gz else file_name=opentrack-dev-linux.tar.gz fi echo "file_name=$file_name" >> $GITHUB_ENV tar czf ../../$file_name . - name: Upload uses: actions/upload-artifact@v4 with: name: ${{env.file_name}} path: ${{env.file_name}}