name: CI on: [push, pull_request] env: CI: 'true' ASAN_OPTIONS: leak_check_at_exit=0 LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 permissions: contents: read # to fetch code (actions/checkout) jobs: linux: name: Linux (python=${{ matrix.pyver }} cc=${{ matrix.cc }} sanitize=${{ matrix.sanitize }}) runs-on: ubuntu-latest env: CC: ${{ matrix.cc }} KITTY_SANITIZE: ${{ matrix.sanitize }} strategy: matrix: python: [a, b, c] cc: [gcc, clang] include: - python: a pyver: "3.8" sanitize: 0 - python: b pyver: "3.11" sanitize: 1 - python: c pyver: "3.9" sanitize: 1 exclude: - python: a cc: clang - python: b cc: clang - python: c cc: gcc steps: - name: Checkout source code uses: actions/checkout@v3 with: fetch-depth: 10 - name: Set up Python ${{ matrix.pyver }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.pyver }} - name: Set up Go uses: actions/setup-go@v3 with: go-version: '>=1.19.0' - name: Build kitty run: python .github/workflows/ci.py build - name: Test kitty run: python .github/workflows/ci.py test linux-package: name: Linux package runs-on: ubuntu-latest env: CFLAGS: -funsigned-char steps: - name: Checkout source code uses: actions/checkout@v3 with: fetch-depth: 0 # needed for :commit: docs role - name: Test for trailing whitespace run: if grep -Inr '\s$' kitty kitty_tests kittens docs *.py *.asciidoc *.rst .gitattributes .gitignore; then echo Trailing whitespace found, aborting.; exit 1; fi - name: Set up Python uses: actions/setup-python@v3 with: python-version: "3.10" - name: Set up Go uses: actions/setup-go@v3 with: go-version: '>=1.19.0' - name: Install build-only deps run: pip install -r docs/requirements.txt flake8 mypy types-requests types-docutils - name: Run pyflakes run: python -m flake8 --count . - name: Build kitty package run: python .github/workflows/ci.py package - name: Build kitty run: python setup.py build --debug - name: Run mypy run: ./test.py mypy - name: Build man page run: make FAIL_WARN=1 man - name: Build HTML docs run: make FAIL_WARN=1 html bundle: name: Bundle test (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest] env: KITTY_BUNDLE: 1 steps: - name: Checkout source code uses: actions/checkout@master with: fetch-depth: 10 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '>=1.19.0' - name: Build kitty run: which python3 && python3 .github/workflows/ci.py build - name: Test kitty run: python3 .github/workflows/ci.py test brew: name: macOS Brew runs-on: macos-latest steps: - name: Checkout source code uses: actions/checkout@master with: fetch-depth: 0 # needed for :commit: docs role - name: Set up Python uses: actions/setup-python@v3 with: python-version: "3.10" - name: Set up Go uses: actions/setup-go@v3 with: go-version: '>=1.19.0' - name: Build kitty run: python3 .github/workflows/ci.py build - name: Test kitty run: python3 .github/workflows/ci.py test - name: Install deps for docs run: python3 -m pip install -r docs/requirements.txt - name: Builds docs run: make FAIL_WARN=1 docs - name: Build kitty package run: python3 .github/workflows/ci.py package