name: Build and Release (Linux) on: push: tags: - 'v*' permissions: contents: write jobs: build-linux: name: Build on Ubuntu runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install dependencies run: | # Add the official OBS Studio PPA to get the latest libobs-dev sudo add-apt-repository ppa:obsproject/obs-studio -y sudo apt-get update # Install Ninja, ccache, OBS headers, and Qt6 (Core, Widgets, WebSockets) sudo apt-get install -y \ ninja-build \ ccache \ libobs-dev \ qt6-base-dev \ libqt6websockets6-dev - name: Configure CMake # Override the preset defaults so CMake knows to look for the Frontend API and Qt run: > cmake --preset ubuntu-ci-x86_64 -DENABLE_FRONTEND_API=ON -DENABLE_QT=ON - name: Build Plugin run: cmake --build --preset ubuntu-ci-x86_64 - name: Package Artifacts run: | cd build_x86_64/rundir/RelWithDebInfo tar -czvf ../../../cd-rec-status-linux-x86_64.tar.gz . - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: name: cd-rec-status-linux-x86_64 path: cd-rec-status-linux-x86_64.tar.gz release: name: Create GitHub Release needs: build-linux runs-on: ubuntu-latest steps: - name: Download artifacts uses: actions/download-artifact@v4 with: path: artifacts merge-multiple: true - name: Publish Release uses: softprops/action-gh-release@v2 with: files: artifacts/*.tar.gz generate_release_notes: true