Ver Fonte

CI: Split Flatpak beta and stable branches

We currently publish the same build from the same branch
to Flathub. However, soon we'll need to build the Flatpak
manifest in different branches, and publish them in different
repositories.

Prepare for that by splitting the publish step in two: one
for Flathub, and another for Flathub Beta. Do that using
a matrix strategy.

Skip building and publishing stable releases when it's a beta
or RC release by setting an output variable in the first job.
Georges Basile Stavracas Neto há 3 anos atrás
pai
commit
36f06e07c6
1 ficheiros alterados com 17 adições e 1 exclusões
  1. 17 1
      .github/workflows/flatpak.yml

+ 17 - 1
.github/workflows/flatpak.yml

@@ -67,39 +67,55 @@ jobs:
     container:
       image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
       options: --privileged
+    strategy:
+      matrix:
+        branch: [stable, beta]
     steps:
+      - name: Check if job should run
+        id: should_run
+        if: "${{ matrix.branch != 'stable' || (!contains(github.ref, '-beta') && !contains(github.ref, '-rc')) }}"
+        run: |
+          echo "::set-output name=should_run::yes"
+
       - name: Checkout
         uses: actions/[email protected]
+        if: steps.should_run.outputs.should_run == 'yes'
         with:
           submodules: 'recursive'
 
       - name: Build Flatpak Manifest
         uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@master
+        if: steps.should_run.outputs.should_run == 'yes'
         with:
           bundle: obs-studio-${{ github.sha }}.flatpak
           manifest-path: CI/flatpak/com.obsproject.Studio.json
           cache-key: flatpak-builder-${{ github.sha }}
           mirror-screenshots-url: https://dl.flathub.org/repo/screenshots
+          branch: ${{ matrix.branch }}
 
       - name: Validate AppStream
         shell: bash
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
           appstream-util validate appdata/com.obsproject.Studio.appdata.xml
 
       - name: Verify icon and metadata in app-info
         shell: bash
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
           test -f app-info/icons/flatpak/128x128/com.obsproject.Studio.png || { echo "Missing 128x128 icon in app-info" ; exit 1; }
           test -f app-info/xmls/com.obsproject.Studio.xml.gz || { echo "Missing com.obsproject.Studio.xml.gz in app-info" ; exit 1; }
 
       - name: Commit screenshots to the OSTree repository
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
           ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 flatpak_app/screenshots
 
       - name: Publish to Flathub Beta
         uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
+        if: steps.should_run.outputs.should_run == 'yes' && matrix.branch == 'beta'
         with:
           flat-manager-url: https://hub.flathub.org/
           repository: beta
@@ -107,7 +123,7 @@ jobs:
 
       - name: Publish to Flathub
         uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
-        if: "!contains(github.ref, '-beta') && !contains(github.ref, '-rc')"
+        if: steps.should_run.outputs.should_run == 'yes' && matrix.branch == 'stable'
         with:
           flat-manager-url: https://hub.flathub.org/
           repository: stable