Skip to content

Build Flatpak

Build Flatpak #26

Workflow file for this run

name: Build Flatpak
on:
workflow_dispatch:
inputs:
artifact_retention_days:
description: "How many days to keep the generated Flatpak artifacts"
required: false
default: "30"
env:
ARTIFACT_RETENTION_DAYS: ${{ github.event_name == 'workflow_dispatch' && inputs.artifact_retention_days || 30 }}
jobs:
flatpak:
name: Build & Bundle Flatpak
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-50
options: --privileged
strategy:
matrix:
variant:
- arch: x86_64
runner: ubuntu-24.04
- arch: aarch64
runner: ubuntu-24.04-arm
runs-on: ${{ matrix.variant.runner }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build AIStudio flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: AIStudio.flatpak
manifest-path: org.mindworkai.AIStudio.yml
arch: ${{ matrix.variant.arch }}
cache-key: ai-studio
cache: true
branch: stable
upload-artifact: false
- name: Prepare plugin builds
run: flatpak install --system -y --noninteractive ./AIStudio.flatpak
- name: Build Pandoc plugin
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: AIStudio-plugin-pandoc.flatpak
manifest-path: plugins/pandoc/org.mindworkai.AIStudio.plugin.pandoc.yml
arch: ${{ matrix.variant.arch }}
cache-key: pandoc-plugin
cache: true
upload-artifact: false
- name: Rename Flatpak artifacts
run: |
set -euo pipefail
mv AIStudio.flatpak "MindWork AI Studio_${{ matrix.variant.arch }}.flatpak"
mv AIStudio-plugin-pandoc.flatpak "MindWork AI Studio Plugin Pandoc_${{ matrix.variant.arch }}.flatpak"
test -s "MindWork AI Studio_${{ matrix.variant.arch }}.flatpak"
test -s "MindWork AI Studio Plugin Pandoc_${{ matrix.variant.arch }}.flatpak"
- name: Upload Flatpak artifacts
uses: actions/upload-artifact@v4
with:
name: MindWork AI Studio Flatpak (${{ matrix.variant.arch }})
path: |
MindWork AI Studio_${{ matrix.variant.arch }}.flatpak
MindWork AI Studio Plugin Pandoc_${{ matrix.variant.arch }}.flatpak
if-no-files-found: error
overwrite: true
retention-days: ${{ fromJSON(env.ARTIFACT_RETENTION_DAYS) }}