Skip to content

Update train_manager.py #37

Update train_manager.py

Update train_manager.py #37

Workflow file for this run

name: Build and Release Standalone GUI
on:
push:
tags:
- "v*"
- "V*"
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
generate-release-notes:
name: Generate release notes
runs-on: ubuntu-latest
outputs:
changelog: ${{ steps.notes.outputs.changelog }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: notes
shell: bash
run: |
set -euo pipefail
delim="__CHANGELOG__"
{
printf 'changelog<<%s\n' "$delim"
git log -20 --pretty=format:'* %s' || true
printf '\n%s\n' "$delim"
} >> "$GITHUB_OUTPUT"
create-release:
name: Create GitHub Release
needs: generate-release-notes
runs-on: ubuntu-latest
steps:
- name: Create/Update GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
body: ${{ needs.generate-release-notes.outputs.changelog }}
build-windows:
name: Build on Windows
needs: create-release
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
shell: pwsh
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: Rename binary
shell: pwsh
run: |
Move-Item -Force dist\VideoAnnotationTool.exe dist\VideoAnnotationTool-win.exe
- name: Zip Windows binary
shell: pwsh
run: |
Compress-Archive -Path dist\VideoAnnotationTool-win.exe -DestinationPath dist\VideoAnnotationTool-win.zip -Force
- name: Upload Release Asset (Windows)
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: annotation_tool/dist/VideoAnnotationTool-win.zip
build-macos:
name: Build on macOS
needs: create-release
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
shell: bash
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
shell: bash
run: |
ditto -c -k --sequesterRsrc --keepParent "dist/VideoAnnotationTool.app" "dist/VideoAnnotationTool-mac.zip"
- name: Upload Release Asset (macOS)
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: annotation_tool/dist/VideoAnnotationTool-mac.zip
build-linux:
name: Build on Linux
needs: create-release
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
shell: bash
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: Rename binary
shell: bash
run: |
mv -f dist/VideoAnnotationTool dist/VideoAnnotationTool-linux
- name: Zip Linux binary
shell: bash
run: |
cd dist
zip -r VideoAnnotationTool-linux.zip VideoAnnotationTool-linux
cd ..
- name: Upload Release Asset (Linux)
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: annotation_tool/dist/VideoAnnotationTool-linux.zip