mirror of
https://github.com/plexguide/Huntarr-Sonarr.git
synced 2025-12-16 20:04:16 -06:00
- Updated macOS installer workflows to include Apprise and its dependencies for notification support. - Modified Windows build script to explicitly install Apprise and its dependencies. - Enhanced huntarr.spec to bundle Apprise data files, addressing attachment directory issues. - Ensured all relevant Apprise modules are collected during the build process for both macOS and Windows.
132 lines
4.1 KiB
YAML
132 lines
4.1 KiB
YAML
name: Windows Build with NSIS
|
|
|
|
# Add permissions needed for creating releases
|
|
permissions:
|
|
contents: write
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main", "dev", "win-*" ]
|
|
tags:
|
|
- "*" # This will trigger on any tag push
|
|
pull_request:
|
|
branches: [ "main", "dev" ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Extract metadata
|
|
id: meta
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
|
|
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
|
echo "IS_TAG=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "VERSION=$(cat version.txt)" >> $GITHUB_OUTPUT
|
|
echo "IS_TAG=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
pip install pyinstaller==5.13.0
|
|
pip install pywin32
|
|
# Explicitly install apprise and its dependencies for Windows build
|
|
pip install apprise==1.6.0
|
|
pip install markdown==3.4.3
|
|
pip install pyyaml==6.0
|
|
|
|
- name: Create directories
|
|
run: |
|
|
mkdir -p config/logs
|
|
dir
|
|
dir config
|
|
|
|
- name: Build with PyInstaller
|
|
run: |
|
|
# Copy spec file from distribution directory to root
|
|
cp distribution/windows/huntarr.spec .
|
|
|
|
# Use the dedicated build script from the distribution directory
|
|
python -m pip install -r requirements.txt
|
|
python -m pip install pywin32
|
|
|
|
# Build with apprise support - use --collect-all apprise to fix attachment directory error
|
|
pyinstaller -y --collect-all apprise distribution/windows/huntarr.spec
|
|
|
|
# Display contents of dist/Huntarr
|
|
dir dist/Huntarr
|
|
|
|
- name: Install NSIS
|
|
run: |
|
|
choco install nsis -y
|
|
|
|
- name: Build NSIS Installer
|
|
run: |
|
|
# Display current directory structure
|
|
dir
|
|
|
|
# Create installer output directory
|
|
mkdir -Force distribution\windows\installer\installer
|
|
mkdir -Force installer
|
|
|
|
# Prepare version file path
|
|
$versionContent = Get-Content version.txt -Raw
|
|
Write-Host "Version from file: $versionContent"
|
|
$AbsVersionFile = Join-Path -Path $PWD.Path -ChildPath "version.txt"
|
|
Write-Host "Absolute path for VERSIONFILE: $AbsVersionFile"
|
|
|
|
# Prepare arguments for makensis.exe
|
|
$MakensisArgs = @(
|
|
"/DVERSIONFILE=$AbsVersionFile",
|
|
"/DPROJECT_ROOT=$($PWD.Path)",
|
|
"distribution\windows\installer\huntarr_installer.nsi"
|
|
)
|
|
|
|
# Run NSIS compiler
|
|
Write-Host "Running makensis.exe with arguments: $MakensisArgs"
|
|
& "C:\Program Files (x86)\NSIS\makensis.exe" $MakensisArgs
|
|
|
|
# Check if installer was created
|
|
$version = (Get-Content version.txt).Trim()
|
|
$installerPath = "distribution\windows\installer\installer\Huntarr-${version}-win.exe"
|
|
if (Test-Path $installerPath) {
|
|
Write-Host "Installer created successfully at $installerPath"
|
|
# Copy to expected upload location
|
|
Copy-Item -Path $installerPath -Destination "installer\Huntarr-${version}-win.exe" -Force
|
|
} else {
|
|
Write-Error "Installer was not created. Check the logs above for errors."
|
|
exit 1
|
|
}
|
|
|
|
# List any exe files in the installer directory
|
|
Get-ChildItem -Path installer -Filter *.exe | ForEach-Object { Write-Host $_.FullName }
|
|
|
|
- name: Upload installer
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: huntarr-installer
|
|
path: installer/Huntarr-*-win.exe
|
|
|
|
- name: Upload to release
|
|
if: steps.meta.outputs.IS_TAG == 'true'
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: installer/Huntarr-*-win.exe
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|