name: Python 3.12

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

permissions:
  contents: read

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: "3.12"

    - name: Install dependencies
      run: |
        sudo apt-get update
        # Dependencies for installation
        sudo apt-get install gettext
        # Dependencies for execution
        sudo apt-get install gir1.2-gtk-3.0 gobject-introspection libcairo2-dev libgirepository1.0-dev python3-gi

    - name: Install Python packages
      run: |
        python -m pip install --upgrade pip
        python -m venv venv
        . venv/bin/activate
        pip install -r requirements_ci.txt

    - name: Compile
      run: |
        python -m compileall gwakeonlan gwakeonlan.py setup.py

    - name: Lint with flake8
      run: |
        . venv/bin/activate
        python -m flake8 gwakeonlan gwakeonlan.py setup.py

    - name: Install
      run: |
        . venv/bin/activate
        python setup.py install --optimize=1 --root=build

    - name: Show results
      run: |
        ls -laR .
