Skip to content

Commit

Permalink
CI: Split Flatpak beta and stable branches
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
GeorgesStavracas committed Dec 30, 2021
1 parent c0c17d5 commit 39f2931
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion .github/workflows/flatpak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,47 +67,64 @@ 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 "Job should 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
token: ${{ secrets.FLATHUB_BETA_TOKEN }}

- 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
Expand Down

0 comments on commit 39f2931

Please sign in to comment.