1
0
Эх сурвалжийг харах

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 3 жил өмнө
parent
commit
36f06e07c6

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

@@ -67,39 +67,55 @@ jobs:
     container:
     container:
       image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
       image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
       options: --privileged
       options: --privileged
+    strategy:
+      matrix:
+        branch: [stable, beta]
     steps:
     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
       - name: Checkout
         uses: actions/[email protected]
         uses: actions/[email protected]
+        if: steps.should_run.outputs.should_run == 'yes'
         with:
         with:
           submodules: 'recursive'
           submodules: 'recursive'
 
 
       - name: Build Flatpak Manifest
       - name: Build Flatpak Manifest
         uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@master
         uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@master
+        if: steps.should_run.outputs.should_run == 'yes'
         with:
         with:
           bundle: obs-studio-${{ github.sha }}.flatpak
           bundle: obs-studio-${{ github.sha }}.flatpak
           manifest-path: CI/flatpak/com.obsproject.Studio.json
           manifest-path: CI/flatpak/com.obsproject.Studio.json
           cache-key: flatpak-builder-${{ github.sha }}
           cache-key: flatpak-builder-${{ github.sha }}
           mirror-screenshots-url: https://dl.flathub.org/repo/screenshots
           mirror-screenshots-url: https://dl.flathub.org/repo/screenshots
+          branch: ${{ matrix.branch }}
 
 
       - name: Validate AppStream
       - name: Validate AppStream
         shell: bash
         shell: bash
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
         run: |
           appstream-util validate appdata/com.obsproject.Studio.appdata.xml
           appstream-util validate appdata/com.obsproject.Studio.appdata.xml
 
 
       - name: Verify icon and metadata in app-info
       - name: Verify icon and metadata in app-info
         shell: bash
         shell: bash
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
         working-directory: ${{ env.FLATPAK_BUILD_PATH }}
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
         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/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; }
           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
       - name: Commit screenshots to the OSTree repository
+        if: steps.should_run.outputs.should_run == 'yes'
         run: |
         run: |
           ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 flatpak_app/screenshots
           ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 flatpak_app/screenshots
 
 
       - name: Publish to Flathub Beta
       - name: Publish to Flathub Beta
         uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
         uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
+        if: steps.should_run.outputs.should_run == 'yes' && matrix.branch == 'beta'
         with:
         with:
           flat-manager-url: https://hub.flathub.org/
           flat-manager-url: https://hub.flathub.org/
           repository: beta
           repository: beta
@@ -107,7 +123,7 @@ jobs:
 
 
       - name: Publish to Flathub
       - name: Publish to Flathub
         uses: bilelmoussaoui/flatpak-github-actions/flat-manager@v4
         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:
         with:
           flat-manager-url: https://hub.flathub.org/
           flat-manager-url: https://hub.flathub.org/
           repository: stable
           repository: stable