summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/linux-package.yml
blob: bc622b6f1f60a93e6b15a56d4a9d4147f888321c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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}}