Skip to content

Commit 901e941

Browse files
Merge PR #1: CI build + dynamic FFmpeg URL + ASF + defaults + no-audio + PowerShell-safe + winget
This merges the PR adding: - GitHub Actions to build amd64 binaries (Windows, macOS Intel) and upload artifacts - Dynamic Windows FFmpeg download (API + fallback), auto-extract to ./bin, auto-path update - ASF output, default resolution = original - "Arquivo sem áudio (-an)" checkbox + UI disabling - PowerShell-safe subprocess calls (arg list), winget install button - Tkinter and PyQt6 parity fixes and indentation/syntax corrections
1 parent 1178fbf commit 901e941

3 files changed

Lines changed: 692 additions & 130 deletions

File tree

.github/workflows/build.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: build-binaries
2+
3+
on:
4+
pull_request:
5+
branches: [ master ]
6+
paths:
7+
- '**/*.py'
8+
- '.github/workflows/**'
9+
- 'requirements.txt'
10+
push:
11+
branches:
12+
- master
13+
- ci-build-and-no-audio-asf
14+
paths:
15+
- '**/*.py'
16+
- '.github/workflows/**'
17+
- 'requirements.txt'
18+
workflow_dispatch: {}
19+
20+
jobs:
21+
build:
22+
name: Build PyInstaller binaries
23+
runs-on: ${{ matrix.os }}
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
os: [windows-latest, macos-13]
28+
python-version: ['3.11']
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v4
32+
33+
- name: Set up Python
34+
uses: actions/setup-python@v5
35+
with:
36+
python-version: ${{ matrix.python-version }}
37+
38+
- name: Install dependencies
39+
shell: bash
40+
run: |
41+
python -m pip install --upgrade pip
42+
if [ -f requirements.txt ]; then pip install -r requirements.txt; else pip install PyQt6; fi
43+
# Ensure common runtime deps are available for PyInstaller analysis
44+
pip install pyinstaller requests ffmpeg-python
45+
46+
- name: Build PyQt6 app
47+
shell: bash
48+
run: |
49+
pyinstaller --name WINFF-GUI-PyQt6 --noconfirm --onefile --windowed GUI_pyqt6_WINFF.py
50+
51+
- name: Build Tkinter app
52+
shell: bash
53+
run: |
54+
pyinstaller --name WINFF-GUI-Tkinter --noconfirm --onefile --windowed GUI_tkinter_WINFF.py
55+
56+
- name: Collect artifacts
57+
shell: bash
58+
run: |
59+
mkdir -p artifacts
60+
if [[ "$RUNNER_OS" == "Windows" ]]; then
61+
cp dist/WINFF-GUI-PyQt6.exe artifacts/
62+
cp dist/WINFF-GUI-Tkinter.exe artifacts/
63+
elif [[ "$RUNNER_OS" == "macOS" ]]; then
64+
# Package .app bundles as zips
65+
cd dist
66+
zip -r ../artifacts/WINFF-GUI-PyQt6-macos.app.zip "WINFF-GUI-PyQt6.app"
67+
zip -r ../artifacts/WINFF-GUI-Tkinter-macos.app.zip "WINFF-GUI-Tkinter.app"
68+
cd -
69+
else
70+
# Fallback for other OSes (not used here)
71+
cp -r dist/* artifacts/
72+
fi
73+
74+
- name: Upload artifacts
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: ${{ runner.os }}-binaries
78+
path: artifacts/*

0 commit comments

Comments
 (0)