# This workflow will...

name: Build

on:
    push:
        branches: ["master"]
    workflow_dispatch:

jobs:
    release:
        runs-on: ${{ matrix.os }}

        strategy:
            matrix:
                os: [windows-latest, ubuntu-latest]

        steps:
            - name: Check out Git repository
              uses: actions/checkout@v4

            - name: Use Node.js
              uses: actions/setup-node@v4
              with:
                  node-version: 22.11.0
                  cache: "npm"
            - run: npm ci
            - run: npm run package

             # Install and setup Flatpak for Ubuntu
            - name: Install flatpak packages (Ubuntu only)
              if: matrix.os == 'ubuntu-latest'
              run: sudo apt-get install -y flatpak flatpak-builder

            - name: Setup flatpak repo (Ubuntu only)
              if: matrix.os == 'ubuntu-latest'
              run: |
                flatpak remote-add --if-not-exists --user \
                  flathub https://flathub.org/repo/flathub.flatpakrepo

            # Build Flatpak package
            - name: Build Flatpak (Ubuntu only)
              if: matrix.os == 'ubuntu-latest'
              run: |
                  env DEBUG="@malept/flatpak-bundler" \
                  npx electron-builder --config electron-builder.config.js --publish never --linux flatpak

            - name: Upload artifact
              uses: actions/upload-artifact@v4
              with:
                  name: release-${{ matrix.os }}
                  path: release
