name: build
on:
  release:
    types: [created]
  push:
    paths-ignore:
      - '**.md'
      - '**.txt'
      - '**.png'
      - 'auto_editor/__init__.py'
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  style:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - name: Lint
        run: |
          pip install .
          pip install -U ruff mypy
          ruff format --check auto_editor
          mypy auto_editor
      - name: Nim
        uses: iffy/install-nim@v5
        with:
          version: binary:stable
      - name: Docs
        run: |
          make -C docs compile
          make -C docs html

  main:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        python-version: ["3.10"]

    runs-on: ${{ matrix.os }}
    timeout-minutes: 20

    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install Auto-Editor
        run: pip install .
      - name: Run Debug
        run: auto-editor --debug
      - name: Test
        run: auto-editor test all
