name: build

on:
  push:
    branches-ignore:
      - 'release'
    tags-ignore:
      - '*'

jobs:

  build-win64:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
          python-version: '3.10.8'
    - name: Upgrade pip and enable wheel support
      run: python -m pip install --upgrade pip setuptools wheel
    - name: Install Requirements
      run: |
        pip install -r requirements.txt
        pip install pyinstaller
      shell: bash
    - name: Build
      run: |
        powershell -File build-win.ps1
        mv inno-output\gotify-tray-installer.exe gotify-tray-installer-win.exe
      shell: cmd
    - name: Upload artifact
      uses: actions/upload-artifact@v3
      with:
        name: gotify-tray-installer-win.exe
        path: gotify-tray-installer-win.exe

  build-ubuntu:
    if: ${{ github.actor != 'dependabot[bot]' }}
    strategy:
      matrix:
        tag: [jammy]
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
          python-version: '3.10.8'
    - name: Upgrade pip and enable wheel support
      run: python -m pip install --upgrade pip setuptools wheel
    - name: Build
      run: |
        make build
        cp dist/gotify-tray_amd64.deb gotify-tray_amd64_ubuntu_${{ matrix.tag }}.deb
    - name: Upload artifact
      uses: actions/upload-artifact@v3
      with:
        name: gotify-tray_amd64_ubuntu_${{ matrix.tag }}.deb
        path: gotify-tray_amd64_ubuntu_${{ matrix.tag }}.deb

  build-macos:
    if: ${{ github.actor != 'dependabot[bot]' }}
    runs-on: macos-12
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
          python-version: '3.10.8'
    - name: Upgrade pip and enable wheel support
      run: python -m pip install --upgrade pip setuptools wheel
    - name: Build
      run: |
        make build-macos
        brew install create-dmg
        create-dmg --volname "Gotify Tray" --app-drop-link 0 0 --no-internet-enable "gotify-tray.dmg" "./dist/Gotify Tray.app"
    - name: Upload artifact
      uses: actions/upload-artifact@v3
      with:
        name: gotify-tray.dmg
        path: gotify-tray.dmg

  build-pip:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
          python-version: '3.10.8'
    - name: Upgrade pip and enable wheel support
      run: python -m pip install --upgrade pip setuptools wheel
    - name: install requirements
      run: |
        pip install -r requirements.txt
        pip install build
    - name: create pip package
      run: python -m build
    - name: Upload artifact
      uses: actions/upload-artifact@v3
      with:
        path: dist/gotify_tray-*.whl
