From 36f06e07c6c5c120dc24d9f2a430a9b6b3d05c78 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Thu, 30 Dec 2021 10:52:43 -0300 Subject: [PATCH] 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. --- .github/workflows/flatpak.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml index baec2a982..a27df29fc 100644 --- a/.github/workflows/flatpak.yml +++ b/.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/checkout@v2.3.3 + 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