summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
blob: f4333a374ade51e44e9bbd61716d06727328207a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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

    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: "3.8"

      - 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

      - 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: |
          cp /usr/lib/python3/dist-packages/libtorrent*.so $GITHUB_WORKSPACE/deluge
          python -c 'from deluge._libtorrent import lt; print(lt.__version__)';
          pytest -m "not (todo or gtkui or security)" deluge

  test-windows:
    runs-on: windows-latest

    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: "3.6"

      - 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 certifi
          python -m pip install deluge-libtorrent
          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 -m "not (todo or gtkui or security)" deluge