mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-17 05:47:50 +00:00
We cannot add python 3.6 because there is no precompiled version of it to used. Therefor, will be using 3.7 as the minimum version in CI. In addition, dropped version limits from pytest.
123 lines
4.0 KiB
YAML
123 lines
4.0 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 }}
|
|
|
|
- name: Cache pip
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ~/.cache/pip
|
|
# Look to see if there is a cache hit for the corresponding requirements file
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tox.ini', 'setup.py', 'requirements*.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
|
|
- name: Add libtorrent deb repository
|
|
uses: myci-actions/add-deb-repo@8
|
|
with:
|
|
repo: deb http://ppa.launchpad.net/libtorrent.org/1.2-daily/ubuntu focal main
|
|
repo-name: libtorrent
|
|
keys: 58E5430D9667FAEFFCA0B93F32309D6B9E009EDB
|
|
key-server: keyserver.ubuntu.com
|
|
install: python3-libtorrent-dbg
|
|
|
|
- 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
|
|
cp /usr/lib/python3/dist-packages/libtorrent*.so $GITHUB_WORKSPACE/deluge
|
|
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-latest
|
|
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 }}
|
|
|
|
- name: Cache pip
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: '%LOCALAPPDATA%\pip\Cache'
|
|
# Look to see if there is a cache hit for the corresponding requirements file
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tox.ini', 'setup.py', 'requirements*.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip wheel
|
|
python -m pip install libtorrent==1.2.*
|
|
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
|