name: Main CI

on:
  pull_request:
    branches: [ master ]
  workflow_dispatch:

permissions:
  contents: read

jobs:
  linter:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=linter
  repo:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=repo
  unit:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=unit
  lab:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=lab
  docs:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=docs
  neutron:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=neutron
  integration:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: make nox session=integration
  minimal:
    runs-on: Linux
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: sudo make nox session=minimal
  fedora:
    runs-on: Fedora
    strategy:
      matrix:
        python: [python3.8, python3.9, python3.10, python3.11, python3.12]
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: sudo make nox session=linux-${{ matrix.python }}
  ubuntu:
    runs-on: Ubuntu
    strategy:
      matrix:
        python: [python3.10, python3.11]
    steps:
      - run: sudo chown -R $USER:$USER $GITHUB_WORKSPACE
      - uses: actions/checkout@v4
      - run: sudo make nox session=linux-${{ matrix.python }}
