90 lines
3.5 KiB
YAML
90 lines
3.5 KiB
YAML
name: Package
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- "deluge-*"
|
||
- "!deluge*-dev*"
|
||
branches:
|
||
- develop
|
||
pull_request:
|
||
types: [labeled, opened, synchronize, reopened]
|
||
|
||
# Allows you to run this workflow manually from the Actions tab
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
windows_package:
|
||
runs-on: windows-2019
|
||
if: (github.event_name != 'pull_request' || github.event.label.name == 'windows')
|
||
strategy:
|
||
matrix:
|
||
arch: [x64, x86]
|
||
python: [3.9]
|
||
libtorrent: [2.0.5, 1.2.15]
|
||
|
||
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}}
|
||
architecture: ${{ matrix.arch }}
|
||
|
||
- 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: |
|
||
$WebClient = New-Object System.Net.WebClient
|
||
$WebClient.DownloadFile("https://github.com/deluge-torrent/gvsbuild-release/releases/download/latest/gvsbuild-py${{ matrix.python }}-vs16-${{ matrix.arch }}.zip","C:\GTK.zip")
|
||
7z x C:\GTK.zip -oc:\GTK
|
||
$env:Path = "C:\GTK\release;C:\GTK\release\bin;C:\GTK\release\lib;$env:Path"
|
||
python -m pip install --upgrade pip wheel
|
||
$pycairopath = Get-Childitem –Path "C:\GTK\release\python\" -Include pycairo*.whl -File -Recurse -ErrorAction SilentlyContinue | select -expand FullName
|
||
$PyGObjectpath = Get-Childitem –Path "C:\GTK\release\python\" -Include PyGObject*.whl -File -Recurse -ErrorAction SilentlyContinue | select -expand FullName
|
||
pip install $pycairopath
|
||
pip install $PyGObjectpath
|
||
pip install https://github.com/doadin/twisted/releases/download/latest/Twisted-21.7.0.post0-py3-none-any.whl
|
||
python -m pip install libtorrent==${{ matrix.libtorrent }}
|
||
pip install -r requirements.txt
|
||
pip install pyinstaller
|
||
|
||
- name: Install Deluge
|
||
run: |
|
||
pip install .
|
||
python setup.py install_scripts
|
||
|
||
- name: Freeze Deluge
|
||
run: |
|
||
$env:Path = "C:\GTK\release;C:\GTK\release\bin;C:\GTK\release\lib;$env:Path"
|
||
pyinstaller --clean $env:GITHUB_WORKSPACE\packaging\win\delugewin.spec --distpath $env:GITHUB_WORKSPACE\packaging\win\freeze
|
||
|
||
- name: Fix OpenSSL For Libtorrent
|
||
if: ${{ matrix.arch == 'x64' }}
|
||
run: |
|
||
Copy-Item -Path $env:GITHUB_WORKSPACE\packaging\win\freeze\Deluge\libssl-1_1.dll -Destination $env:GITHUB_WORKSPACE\packaging\win\freeze\Deluge\libssl-1_1-x64.dll
|
||
Copy-Item -Path $env:GITHUB_WORKSPACE\packaging\win\freeze\Deluge\libcrypto-1_1.dll -Destination $env:GITHUB_WORKSPACE\packaging\win\freeze\Deluge\libcrypto-1_1-x64.dll
|
||
|
||
- name: Make Deluge Installer
|
||
working-directory: ./packaging/win
|
||
run: |
|
||
python setup_nsis.py
|
||
makensis /Darch=${{ matrix.arch }} deluge-win-installer.nsi
|
||
|
||
- uses: actions/upload-artifact@v2
|
||
with:
|
||
name: deluge-py${{ matrix.python }}-lt${{ matrix.libtorrent }}-${{ matrix.arch }}
|
||
path: packaging/win/*.exe
|