Skip to content

Update ci.yml

Update ci.yml #164

Workflow file for this run

name: Build Standalone GUI
on:
push:
branches:
- main
- dev-jintao
workflow_dispatch:
permissions:
contents: read
actions: write
jobs:
build-windows:
name: Build on Windows
runs-on: windows-latest
defaults:
run:
working-directory: annotation_tool
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Cleanup before PyInstaller
shell: pwsh
run: |
Remove-Item -Recurse -Force build,dist -ErrorAction SilentlyContinue
Remove-Item -Force *.spec -ErrorAction SilentlyContinue
try { pip cache purge } catch { Write-Host "pip cache purge failed (ignored)" }
- name: Build exe
# Windows add-data separator is ';'
# We bundle the whole folders: style/, ui/, controllers/
shell: pwsh
run: |
python -m PyInstaller --noconfirm --clean --windowed --onefile `
--name "SoccerNetProAnalyzer" `
--add-data "style;style" `
--add-data "ui;ui" `
--add-data "controllers;controllers" `
"main.py"
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: SoccerNetProAnalyzer-Windows
path: annotation_tool/dist/SoccerNetProAnalyzer.exe
retention-days: 3
build-macos:
name: Build on macOS
runs-on: macos-latest
defaults:
run:
working-directory: annotation_tool
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Cleanup before PyInstaller
run: |
rm -rf build dist *.spec
pip cache purge || true
- name: Build app
# macOS add-data separator is ':'
run: |
python -m PyInstaller --noconfirm --clean --windowed \
--name "SoccerNetProAnalyzer" \
--add-data "style:style" \
--add-data "ui:ui" \
--add-data "controllers:controllers" \
"main.py"
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: SoccerNetProAnalyzer-macOS
path: annotation_tool/dist/SoccerNetProAnalyzer.app
retention-days: 3
build-linux:
name: Build on Linux
runs-on: ubuntu-latest
defaults:
run:
working-directory: annotation_tool
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install system deps (Qt/OpenCV runtime)
run: |
sudo apt-get update
sudo apt-get install -y libgl1 libglib2.0-0 libxcb-cursor0
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Cleanup before PyInstaller
run: |
rm -rf build dist *.spec
pip cache purge || true
- name: Build binary
# Linux add-data separator is ':'
run: |
python -m PyInstaller --noconfirm --clean --windowed --onefile \
--name "SoccerNetProAnalyzer" \
--add-data "style:style" \
--add-data "ui:ui" \
--add-data "controllers:controllers" \
"main.py"
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: SoccerNetProAnalyzer-Linux
path: annotation_tool/dist/SoccerNetProAnalyzer
retention-days: 3