release.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. run: cmake --preset ubuntu-ci-x86_64
  29. - name: Build Plugin
  30. run: cmake --build --preset ubuntu-ci-x86_64
  31. - name: Package Artifacts
  32. run: |
  33. cd build_x86_64/rundir/RelWithDebInfo
  34. tar -czvf ../../../cd-rec-status-linux-x86_64.tar.gz .
  35. - name: Upload Build Artifact
  36. uses: actions/upload-artifact@v4
  37. with:
  38. name: cd-rec-status-linux-x86_64
  39. path: cd-rec-status-linux-x86_64.tar.gz
  40. release:
  41. name: Create GitHub Release
  42. needs: build-linux
  43. runs-on: ubuntu-latest
  44. steps:
  45. - name: Download artifacts
  46. uses: actions/download-artifact@v4
  47. with:
  48. path: artifacts
  49. merge-multiple: true
  50. - name: Publish Release
  51. uses: softprops/action-gh-release@v2
  52. with:
  53. files: artifacts/*.tar.gz
  54. generate_release_notes: true