summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes5
-rw-r--r--.github/workflows/ci-tests.yml88
2 files changed, 93 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..a446231f1
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+# Set the default behaviour, in case poeple don't have core.autocrlf set
+* text=auto
+
+# Always lf, this file size is checked in a test
+tests/fixtures/static/encoded.html text eol=lf
diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
new file mode 100644
index 000000000..366c0ffcf
--- /dev/null
+++ b/.github/workflows/ci-tests.yml
@@ -0,0 +1,88 @@
+name: Build and test
+
+on:
+ # Only on pushes to master or one of the release branches we build on push
+ push:
+ branches:
+ - master
+ - "[0-9].[0-9]+-branch"
+ tags:
+ # Build pull requests
+ pull_request:
+
+jobs:
+ test:
+ strategy:
+ matrix:
+ py:
+ - "3.5"
+ - "3.6"
+ - "3.7"
+ - "3.8"
+ - "pypy3"
+ os:
+ - "ubuntu-latest"
+ - "windows-latest"
+ - "macos-latest"
+ architecture:
+ - x64
+ - x86
+
+ exclude:
+ # Linux and macOS don't have x86 python
+ - os: "ubuntu-latest"
+ architecture: x86
+ - os: "macos-latest"
+ architecture: x86
+ # PyPy3 on Windows doesn't seem to work
+ - os: "windows-latest"
+ py: "pypy3"
+
+ name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}"
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.py }}
+ architecture: ${{ matrix.architecture }}
+ - run: pip install tox
+ - name: Running tox
+ run: tox -e py
+ coverage:
+ runs-on: ubuntu-latest
+ name: Validate coverage
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ architecture: x64
+ - run: pip install tox
+ - run: tox -e py38,coverage
+ docs:
+ runs-on: ubuntu-latest
+ name: Build the documentation
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ architecture: x64
+ - run: pip install tox
+ - run: tox -e docs
+ lint:
+ runs-on: ubuntu-latest
+ name: Lint the package
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ architecture: x64
+ - run: pip install tox
+ - run: tox -e lint