mirror of
https://git.deluge-torrent.org/deluge
synced 2025-04-20 03:24:54 +00:00
A recent dependency change caused the tests running on GitHub Actions under Python 3.10.5 on Windows to fail when starting pytest run: ... INTERNALERROR> File "<frozen importlib._bootstrap>", line 123, in acquire INTERNALERROR> KeyError: xxxx The cause seems to have been a newer version of chardet package released recently. * Fixed by pinning chardet to v4 * Also pin Windows version to 2019 to match packaging workflow See-also: https://github.com/deluge-torrent/deluge/actions/runs/2578427588 Issue: https://github.com/chardet/chardet/issues/265
95 lines
2.9 KiB
YAML
95 lines
2.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
test-linux:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.7", "3.10"]
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: "pip"
|
|
cache-dependency-path: "requirements*.txt"
|
|
|
|
- name: Sets env var for security
|
|
if: (github.event_name == 'pull_request' && contains(github.event.pull_request.body, 'security_test')) || (github.event_name == 'push' && contains(github.event.head_commit.message, 'security_test'))
|
|
run: echo "SECURITY_TESTS=True" >> $GITHUB_ENV
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install --upgrade pip wheel
|
|
pip install -r requirements.txt -r requirements-tests.txt
|
|
pip install -e .
|
|
|
|
- name: Install security dependencies
|
|
if: contains(env.SECURITY_TESTS, 'True')
|
|
run: |
|
|
wget -O- $TESTSSL_URL$TESTSSL_VER | tar xz
|
|
mv -t deluge/tests/data testssl.sh-$TESTSSL_VER/testssl.sh testssl.sh-$TESTSSL_VER/etc/;
|
|
env:
|
|
TESTSSL_VER: 3.0.6
|
|
TESTSSL_URL: https://codeload.github.com/drwetter/testssl.sh/tar.gz/refs/tags/v
|
|
|
|
- name: Setup core dump directory
|
|
run: |
|
|
sudo mkdir /cores/ && sudo chmod 777 /cores/
|
|
echo "/cores/%E.%p" | sudo tee /proc/sys/kernel/core_pattern
|
|
|
|
- name: Test with pytest
|
|
run: |
|
|
ulimit -c unlimited # Enable core dumps to be captured
|
|
python -c 'from deluge._libtorrent import lt; print(lt.__version__)';
|
|
catchsegv python -X dev -m pytest -v -m "not (todo or gtkui)" deluge
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
# capture all crashes as build artifacts
|
|
if: failure()
|
|
with:
|
|
name: crashes
|
|
path: /cores
|
|
|
|
test-windows:
|
|
runs-on: windows-2019
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.7", "3.10"]
|
|
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: "pip"
|
|
cache-dependency-path: "requirements*.txt"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install --upgrade pip wheel
|
|
pip install -r requirements.txt -r requirements-tests.txt
|
|
pip install -e .
|
|
|
|
- name: Test with pytest
|
|
run: |
|
|
python -c 'import libtorrent as lt; print(lt.__version__)';
|
|
pytest -v -m "not (todo or gtkui or security)" deluge
|