Skip to content

Update changelog to add the (single) CVE ID for the two HTML Cleaner … #663

Update changelog to add the (single) CVE ID for the two HTML Cleaner …

Update changelog to add the (single) CVE ID for the two HTML Cleaner … #663

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
ci:
strategy:
# Allows for matrix sub-jobs to fail without canceling the rest
fail-fast: false
# MATRIX:
# =======
# Required parameters:
# os the os to run on
# python-version the python version to use
# backend the backend to use
# env any additional env variables. Set to '{}' for none
# Optional parameters:
# allowed_failure whether the job is allowed to fail
# extra_hash extra hash str to differentiate from other caches with similar name (must always start with '-')
matrix:
# Tests [amd64]
#
os: [ubuntu-18.04, macos-10.15]
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10"] # quotes to avoid being interpreted as the number 3.1
env: [{ STATIC_DEPS: true }, { STATIC_DEPS: false }]
include:
# Coverage setup
- os: ubuntu-18.04
python-version: 3.9
env: { COVERAGE: true }
extra_hash: "-coverage"
allowed_failure: true # shouldn't fail but currently does...
- os: ubuntu-18.04
python-version: 3.9
env: { STATIC_DEPS: false, EXTRA_DEPS: "docutils pygments sphinx sphinx-rtd-theme" }
extra_hash: "-docs"
allowed_failure: true # shouldn't fail but currently does...
# Old library setup with minimum version requirements
- os: ubuntu-18.04
python-version: 3.9
env: {
STATIC_DEPS: true,
LIBXML2_VERSION: 2.9.2,
LIBXSLT_VERSION: 1.1.27,
}
extra_hash: "-oldlibs"
allowed_failure: true # shouldn't fail but currently does...
# Ubuntu sub-jobs:
# ================
# Pypy
- os: ubuntu-18.04
python-version: pypy-2.7
env: { STATIC_DEPS: false }
allowed_failure: true
- os: ubuntu-18.04
python-version: pypy-3.7
env: { STATIC_DEPS: false }
allowed_failure: true
# MacOS sub-jobs
# ==============
- os: macos-10.15
allowed_failure: true # Unicode parsing fails in Py3
# This defaults to 360 minutes (6h) which is way too long and if a test gets stuck, it can block other pipelines.
# From testing, the runs tend to take ~3 minutes, so a limit of 20 minutes should be enough. This can always be
# changed in the future if needed.
timeout-minutes: 20
runs-on: ${{ matrix.os }}
env:
OS_NAME: ${{ matrix.os }}
PYTHON_VERSION: ${{ matrix.python-version }}
MACOSX_DEPLOYMENT_TARGET: 10.14
LIBXML2_VERSION: 2.9.10
LIBXSLT_VERSION: 1.1.34
COVERAGE: false
GCC_VERSION: 8
USE_CCACHE: 1
CCACHE_SLOPPINESS: "pch_defines,time_macros"
CCACHE_COMPRESS: 1
CCACHE_MAXSIZE: "100M"
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache [ccache]
uses: pat-s/always-upload-cache@v2.1.3
if: startsWith(runner.os, 'Linux')
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache${{ matrix.extra_hash }}-${{ matrix.python-version }}-${{ hashFiles('.github/workflows/ci.yml', 'tools/ci-run.sh') }}
- name: Run CI
continue-on-error: ${{ matrix.allowed_failure || false }}
env: ${{ matrix.env }}
run: bash ./tools/ci-run.sh
- name: Build docs
if: contains( env.EXTRA_DEPS, 'sphinx')
run: make html
- name: Upload docs
uses: actions/upload-artifact@v2
if: ${{ matrix.extra_hash == '-docs' }}
with:
name: website_html
path: doc/html
if-no-files-found: ignore
- name: Upload Coverage Report
uses: actions/upload-artifact@v2
with:
name: pycoverage_html
path: coverage*
if-no-files-found: ignore
- name: Upload Wheel
uses: actions/upload-artifact@v2
if: ${{ matrix.env.STATIC_DEPS == 'true' && env.COVERAGE == 'false' }}
with:
name: wheels-${{ runner.os }}
path: dist/*.whl
if-no-files-found: ignore