Skip to content

Update train_manager.py #418

Update train_manager.py

Update train_manager.py #418

Workflow file for this run

name: Build Standalone GUI
on:
push:
branches:
- main
- dev-jintao
- smart-annotation
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
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.11"
- name: Cache pip
uses: actions/cache@v4
with:
path: |
~\AppData\Local\pip\Cache
~\AppData\Local\pip\cache
~\AppData\Roaming\pip\Cache
key: ${{ runner.os }}-pip-${{ hashFiles('annotation_tool/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
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
shell: pwsh
run: >
python -m PyInstaller --noconfirm --clean --windowed --onefile
--name "VideoAnnotationTool"
--add-data "style;style"
--add-data "ui;ui"
--add-data "controllers;controllers"
--add-data "image;image"
--add-data "config.yaml;."
--collect-all "soccernetpro"
--collect-all "wandb"
--collect-all "torch_geometric"
"main.py"
- name: Zip Windows binary (manual runs only)
if: github.event_name == 'workflow_dispatch'
shell: pwsh
run: |
Move-Item -Force dist\VideoAnnotationTool.exe dist\VideoAnnotationTool-win.exe
Compress-Archive -Path dist\VideoAnnotationTool-win.exe -DestinationPath dist\VideoAnnotationTool-win.zip -Force
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: VideoAnnotationTool-Windows
path: annotation_tool/dist/VideoAnnotationTool-win.zip
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.11"
- name: Cache pip
uses: actions/cache@v4
with:
path: |
~/Library/Caches/pip
~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('annotation_tool/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Cleanup before PyInstaller
shell: bash
run: |
rm -rf build dist *.spec
pip cache purge || true
- name: Build app
shell: bash
run: >
python -m PyInstaller --noconfirm --clean --windowed
--name "VideoAnnotationTool"
--add-data "style:style"
--add-data "ui:ui"
--add-data "controllers:controllers"
--add-data "image:image"
--add-data "config.yaml:."
--collect-all "soccernetpro"
--collect-all "wandb"
--collect-all "torch_geometric"
"main.py"
- name: Zip macOS app (manual runs only)
if: github.event_name == 'workflow_dispatch'
shell: bash
run: |
ditto -c -k --sequesterRsrc --keepParent "dist/VideoAnnotationTool.app" "dist/VideoAnnotationTool-mac.zip"
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: VideoAnnotationTool-macOS
path: annotation_tool/dist/VideoAnnotationTool-mac.zip
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.11"
- name: Install system deps (Qt/OpenCV runtime)
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y libgl1 libglib2.0-0 libxcb-cursor0
- name: Cache pip
uses: actions/cache@v4
with:
path: |
~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('annotation_tool/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install requirements
run: |
python -m pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt
- name: Cleanup before PyInstaller
shell: bash
run: |
rm -rf build dist *.spec
pip cache purge || true
- name: Build binary
shell: bash
run: >
python -m PyInstaller --noconfirm --clean --windowed --onefile
--name "VideoAnnotationTool"
--add-data "style:style"
--add-data "ui:ui"
--add-data "controllers:controllers"
--add-data "image:image"
--add-data "config.yaml:."
--collect-all "soccernetpro"
--collect-all "wandb"
--collect-all "torch_geometric"
"main.py"
- name: Zip Linux binary (manual runs only)
if: github.event_name == 'workflow_dispatch'
shell: bash
run: |
mv -f dist/VideoAnnotationTool dist/VideoAnnotationTool-linux
cd dist
zip -r VideoAnnotationTool-linux.zip VideoAnnotationTool-linux
cd ..
- name: Upload artifact (manual runs only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: VideoAnnotationTool-Linux
path: annotation_tool/dist/VideoAnnotationTool-linux.zip
retention-days: 3