169 lines
4.7 KiB
YAML
169 lines
4.7 KiB
YAML
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
|