release.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: Build and Release (Linux)
  2. on:
  3. push:
  4. tags:
  5. - 'v*'
  6. permissions:
  7. contents: write
  8. jobs:
  9. build-linux:
  10. name: Build on Ubuntu
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout repository
  14. uses: actions/checkout@v4
  15. - name: Install dependencies
  16. run: |
  17. # Add the official OBS Studio PPA to get the latest libobs-dev
  18. sudo add-apt-repository ppa:obsproject/obs-studio -y
  19. sudo apt-get update
  20. # Install Ninja, ccache, OBS headers, and Qt6 (Core, Widgets, WebSockets)
  21. sudo apt-get install -y \
  22. ninja-build \
  23. ccache \
  24. libobs-dev \
  25. qt6-base-dev \
  26. libqt6websockets6-dev
  27. - name: Configure CMake
  28. # Override the preset defaults so CMake knows to look for the Frontend API and Qt
  29. run: >
  30. cmake --preset ubuntu-ci-x86_64
  31. -DENABLE_FRONTEND_API=ON
  32. -DENABLE_QT=ON
  33. - name: Build Plugin
  34. run: cmake --build --preset ubuntu-ci-x86_64
  35. - name: Package Artifacts
  36. run: |
  37. cd build_x86_64/rundir/RelWithDebInfo
  38. tar -czvf ../../../cd-rec-status-linux-x86_64.tar.gz .
  39. - name: Upload Build Artifact
  40. uses: actions/upload-artifact@v4
  41. with:
  42. name: cd-rec-status-linux-x86_64
  43. path: cd-rec-status-linux-x86_64.tar.gz
  44. release:
  45. name: Create GitHub Release
  46. needs: build-linux
  47. runs-on: ubuntu-latest
  48. steps:
  49. - name: Download artifacts
  50. uses: actions/download-artifact@v4
  51. with:
  52. path: artifacts
  53. merge-multiple: true
  54. - name: Publish Release
  55. uses: softprops/action-gh-release@v2
  56. with:
  57. files: artifacts/*.tar.gz
  58. generate_release_notes: true