name: Build ProxMenux Monitor AppImage

on:
  push:
    branches: [ main ]
    paths: [ 'AppImage/**' ]
  pull_request:
    branches: [ main ]
    paths: [ 'AppImage/**' ]
  workflow_dispatch:  

env:
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
  build:
    runs-on: ubuntu-22.04
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v6
      
    - name: Setup Node.js
      uses: actions/setup-node@v6
      with:
        node-version: '22'
        
    - name: Install dependencies
      working-directory: AppImage
      run: npm install --legacy-peer-deps
      
    - name: Build Next.js app
      working-directory: AppImage
      run: npm run build
      
    - name: Install Python dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y python3 python3-pip python3-venv
        
    - name: Make build script executable
      working-directory: AppImage
      run: chmod +x scripts/build_appimage.sh
      
    - name: Build AppImage
      working-directory: AppImage
      run: ./scripts/build_appimage.sh
      
    - name: Get version from package.json
      id: version
      working-directory: AppImage
      run: echo "VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
      
    - name: Upload AppImage artifact
      uses: actions/upload-artifact@v6
      with:
        name: ProxMenux-${{ steps.version.outputs.VERSION }}-AppImage
        path: AppImage/dist/*.AppImage
        retention-days: 30
