name: Python

on:
  push:
    branches: [ '*' ]
  pull_request:
    branches: [ '*' ]

jobs:
  pyinstaller:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: ['ubuntu-20.04', 'windows-2019', 'macos-11']
      fail-fast: false
      max-parallel: 3

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-python@v2
      with:
        python-version: '3.9'

    - name: Legendary dependencies and build tools
      run: pip3 install --upgrade
        setuptools
        pyinstaller
        requests

    - name: Optional dependencies (WebView)
      run: pip3 install --upgrade pywebview
      if: runner.os != 'macOS'

    - name: Set strip option on non-Windows
      id: strip
      run: echo ::set-output name=option::--strip
      if: runner.os != 'Windows'

    - name: Build
      working-directory: legendary
      run: pyinstaller
        --onefile
        --name legendary
        ${{ steps.strip.outputs.option }}
        -i ../assets/windows_icon.ico
        cli.py
      env:
        PYTHONOPTIMIZE: 1

    - uses: actions/upload-artifact@v2
      with:
        name: ${{ runner.os }}-package
        path: legendary/dist/*

  deb:
    runs-on: ubuntu-22.04

    steps:
    - uses: actions/checkout@v2

    - name: Dependencies
      run: sudo apt install
        python3-all
        python3-stdeb
        dh-python
        python3-requests
        python3-setuptools
        python3-wheel

    - name: Webview Dependencies
      run: sudo apt install 
        python3-webview
        python3-gi
        python3-gi-cairo
        gir1.2-gtk-3.0

    - name: Build
      run: python3 setup.py --command-packages=stdeb.command bdist_deb

    - name: Os version
      id: os_version
      run: |
        source /etc/os-release
        echo ::set-output name=version::$NAME-$VERSION_ID

    - uses: actions/upload-artifact@v2
      with:
        name: ${{ steps.os_version.outputs.version }}-deb-package
        path: deb_dist/*.deb