obs-studio/.github/workflows/flatpak.yml
Georges Basile Stavracas Neto b0e82b9233 CI: Run Flatpak jobs on release branches too
We'll soon be moving to branching before releases, which
is a case that the current Flatpak worflow did not account
for.

Adapt it to also run on release/** branches.
2021-12-13 09:16:28 -08:00

115 lines
4.1 KiB
YAML

---
name: Flatpak
on:
push:
paths-ignore: ['**.md']
branches: [master, 'release/**']
pull_request:
paths-ignore: ['**.md']
branches: [master, 'release/**']
release:
types: [published]
branches: [master, 'release/**']
env:
TWITCH_CLIENTID: ${{ secrets.TWITCH_CLIENT_ID }}
TWITCH_HASH: ${{ secrets.TWITCH_HASH }}
RESTREAM_CLIENTID: ${{ secrets.RESTREAM_CLIENTID }}
RESTREAM_HASH: ${{ secrets.RESTREAM_HASH }}
YOUTUBE_CLIENTID: ${{ secrets.YOUTUBE_CLIENTID }}
YOUTUBE_CLIENTID_HASH: ${{ secrets.YOUTUBE_CLIENTID_HASH }}
YOUTUBE_SECRET: ${{ secrets.YOUTUBE_SECRET }}
YOUTUBE_SECRET_HASH: ${{ secrets.YOUTUBE_SECRET_HASH }}
jobs:
generate_bundle:
name: Generate Flatpak Bundle
runs-on: [ubuntu-latest]
if: github.event_name != 'release'
container:
image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
options: --privileged
steps:
- name: 'Check for Github Labels'
if: github.event_name == 'pull_request'
shell: bash
run: |
LABELS_URL="$(echo ${{ github.event.pull_request.url }} | sed s'/pulls/issues/')"
LABEL_FOUND="$(curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "${LABELS_URL}/labels" | sed -n 's/.*"name": "\(.*\)",/\1/p' | grep 'Seeking Testers' || true)"
if [ "${LABEL_FOUND}" = "Seeking Testers" ]; then
echo "SEEKING_TESTERS=1" >> $GITHUB_ENV
else
echo "SEEKING_TESTERS=0" >> $GITHUB_ENV
fi
- name: Checkout
uses: actions/checkout@v2.3.3
if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
with:
submodules: 'recursive'
- name: Build Flatpak Manifest
uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4
if: success() && (github.event_name != 'pull_request' || env.SEEKING_TESTERS == '1')
with:
bundle: obs-studio-${{ github.sha }}.flatpak
manifest-path: CI/flatpak/com.obsproject.Studio.json
cache-key: flatpak-builder-${{ github.sha }}
publish:
name: Publish to Flathub
runs-on: [ubuntu-latest]
if: github.event_name == 'release'
env:
FLATPAK_BUILD_PATH: flatpak_app/files/share
container:
image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@v2.3.3
with:
submodules: 'recursive'
- name: Build Flatpak Manifest
uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@master
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
- name: Validate AppStream
shell: bash
working-directory: ${{ env.FLATPAK_BUILD_PATH }}
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 }}
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
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
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')"
with:
flat-manager-url: https://hub.flathub.org/
repository: stable
token: ${{ secrets.FLATHUB_TOKEN }}