flatpak.yml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ---
  2. name: Flatpak
  3. on:
  4. release:
  5. types: [published]
  6. branches: [master, 'release/**']
  7. env:
  8. TWITCH_CLIENTID: ${{ secrets.TWITCH_CLIENT_ID }}
  9. TWITCH_HASH: ${{ secrets.TWITCH_HASH }}
  10. RESTREAM_CLIENTID: ${{ secrets.RESTREAM_CLIENTID }}
  11. RESTREAM_HASH: ${{ secrets.RESTREAM_HASH }}
  12. YOUTUBE_CLIENTID: ${{ secrets.YOUTUBE_CLIENTID }}
  13. YOUTUBE_CLIENTID_HASH: ${{ secrets.YOUTUBE_CLIENTID_HASH }}
  14. YOUTUBE_SECRET: ${{ secrets.YOUTUBE_SECRET }}
  15. YOUTUBE_SECRET_HASH: ${{ secrets.YOUTUBE_SECRET_HASH }}
  16. jobs:
  17. publish:
  18. name: Publish to Flathub
  19. runs-on: [ubuntu-latest]
  20. if: "${{ github.event_name == 'release' && ( matrix.branch != 'stable' || (!contains(github.ref, '-beta') && !contains(github.ref, '-rc')) ) }}"
  21. env:
  22. FLATPAK_BUILD_PATH: flatpak_app/files/share
  23. container:
  24. image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
  25. options: --privileged
  26. strategy:
  27. matrix:
  28. branch: [stable, beta]
  29. steps:
  30. - name: Checkout
  31. uses: actions/checkout@v3
  32. with:
  33. submodules: 'recursive'
  34. - name: Build Flatpak Manifest
  35. uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@master
  36. with:
  37. bundle: obs-studio-${{ github.sha }}.flatpak
  38. manifest-path: CI/flatpak/com.obsproject.Studio.json
  39. cache-key: flatpak-builder-${{ github.sha }}
  40. mirror-screenshots-url: https://dl.flathub.org/repo/screenshots
  41. branch: ${{ matrix.branch }}
  42. - name: Validate AppStream
  43. shell: bash
  44. working-directory: ${{ env.FLATPAK_BUILD_PATH }}
  45. run: |
  46. appstream-util validate appdata/com.obsproject.Studio.appdata.xml
  47. - name: Verify icon and metadata in app-info
  48. shell: bash
  49. working-directory: ${{ env.FLATPAK_BUILD_PATH }}
  50. run: |
  51. test -f app-info/icons/flatpak/128x128/com.obsproject.Studio.png || { echo "Missing 128x128 icon in app-info" ; exit 1; }
  52. test -f app-info/xmls/com.obsproject.Studio.xml.gz || { echo "Missing com.obsproject.Studio.xml.gz in app-info" ; exit 1; }
  53. - name: Commit screenshots to the OSTree repository
  54. run: |
  55. ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 flatpak_app/screenshots
  56. - name: Publish to Flathub Beta
  57. uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
  58. if: matrix.branch == 'beta'
  59. with:
  60. flat-manager-url: https://hub.flathub.org/
  61. repository: beta
  62. token: ${{ secrets.FLATHUB_BETA_TOKEN }}
  63. - name: Publish to Flathub
  64. uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
  65. if: matrix.branch == 'stable'
  66. with:
  67. flat-manager-url: https://hub.flathub.org/
  68. repository: stable
  69. token: ${{ secrets.FLATHUB_TOKEN }}