mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-16 21:36:40 +00:00
To allow packaging any commit the workflow needs to separately checkout the source code from the current code containing the packaging scripts.
108 lines
3.7 KiB
YAML
108 lines
3.7 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:
|
|
inputs:
|
|
ref:
|
|
description: "Enter a tag or commit to package"
|
|
default: ""
|
|
|
|
jobs:
|
|
windows_package:
|
|
runs-on: windows-2019
|
|
if: (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'package'))
|
|
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
|
|
|
|
# Checkout Deluge source to subdir to enable packaging any tag/commit
|
|
- name: Checkout Deluge source
|
|
uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
path: deluge_src
|
|
|
|
- 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: Prepare pip
|
|
run: python -m pip install --upgrade pip wheel
|
|
|
|
- name: Install GTK
|
|
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
|
|
echo "C:\GTK\release\lib" | Out-File -FilePath $env:GITHUB_PATH -Append
|
|
echo "C:\GTK\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Append
|
|
echo "C:\GTK\release" | Out-File -FilePath $env:GITHUB_PATH -Append
|
|
|
|
- name: Install Python dependencies
|
|
run: >
|
|
python -m pip install --find-links="C:\GTK\release\python" pycairo PyGObject
|
|
|
|
python -m pip install
|
|
https://github.com/doadin/twisted/releases/download/latest/Twisted-21.7.0.post0-py3-none-any.whl
|
|
libtorrent==${{ matrix.libtorrent }}
|
|
pyinstaller
|
|
pygame
|
|
-r requirements.txt
|
|
|
|
- name: Install Deluge
|
|
working-directory: deluge_src
|
|
run: |
|
|
python -m pip install .
|
|
python setup.py install_scripts
|
|
|
|
- name: Freeze Deluge
|
|
run: |
|
|
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
|