mirror of
https://github.com/codex-storage/deluge.git
synced 2025-01-10 19:46:22 +00:00
7082d9cec4
The latest Pillow 10 does not support Py3.7 therefore wheels are no longer available and we need to specify previous major version. Older versions of setuptools do not correctly determine the Twisted requirement for zope.interface>5 on Python 3.7 so ensure latest installed. For the CD builds we don't want any surprises so keep the setuptools version pinned. Refs: https://pillow.readthedocs.io/en/stable/installation.html Closes: https://github.com/deluge-torrent/deluge/pull/433
102 lines
3.2 KiB
YAML
102 lines
3.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
inputs:
|
|
core-dump:
|
|
description: "Set to 1 to enable retrieving core dump from crashes"
|
|
default: "0"
|
|
jobs:
|
|
test-linux:
|
|
runs-on: ubuntu-22.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@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
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 setuptools
|
|
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 catch and store
|
|
if: github.event.inputs.core-dump == '1'
|
|
run: |
|
|
sudo mkdir /cores/ && sudo chmod 777 /cores/
|
|
echo "/cores/%E.%p" | sudo tee /proc/sys/kernel/core_pattern
|
|
ulimit -c unlimited
|
|
sudo apt install glibc-tools
|
|
echo "DEBUG_PREFIX=catchsegv python -X dev -m" >> $GITHUB_ENV
|
|
|
|
- name: Test with pytest
|
|
run: |
|
|
python -c 'from deluge._libtorrent import lt; print(lt.__version__)';
|
|
$DEBUG_PREFIX pytest -v -m "not (todo or gtkui)" deluge
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
# capture all crashes as build artifacts
|
|
if: failure()
|
|
with:
|
|
name: crashes
|
|
path: /cores
|
|
|
|
test-windows:
|
|
runs-on: windows-2022
|
|
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@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: "pip"
|
|
cache-dependency-path: "requirements*.txt"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install --upgrade pip wheel setuptools
|
|
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
|