Skip to content

Commit 4d2a545

Browse files
Update README.md
Update the GIthub workflow
1 parent f6049c3 commit 4d2a545

1 file changed

Lines changed: 69 additions & 29 deletions

File tree

README.md

Lines changed: 69 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -117,66 +117,106 @@ python test_data/download_osl_hf.py \
117117
--output-dir Test_Data/Localization
118118
```
119119
---
120+
## 🧰 Build a standalone app (PyInstaller)
120121

122+
This project can be packaged into a standalone desktop app using **PyInstaller**.
123+
The commands below assume you run them **from the repository root**.
124+
125+
> **Note:** The app bundles runtime assets from `style/`, `ui/`, and `controllers/`.
126+
> This matches the GitHub Actions build configuration.
127+
128+
---
121129

122-
## 🧰 Build a standalone app (PyInstaller)
123130
### **macOS (.app)**
124131

125-
From the repository root:
126132
```bash
127133
cd annotation_tool
128-
pyinstaller --noconfirm --clean --windowed \
134+
135+
python -m PyInstaller --noconfirm --clean --windowed \
129136
--name "SoccerNetProAnalyzer" \
130137
--add-data "style:style" \
131138
--add-data "ui:ui" \
132-
--add-data "ui2:ui2" \
139+
--add-data "controllers:controllers" \
133140
main.py
134141
```
135142

136-
### **Windows / Linux** (one-file binary)
143+
Output:
137144

138-
From the repository root:
145+
* `annotation_tool/dist/SoccerNetProAnalyzer.app`
146+
147+
---
148+
149+
### **Windows / Linux (one-file binary)**
150+
151+
#### Linux
139152

140153
```bash
141-
cd Tool
142-
pyinstaller --noconfirm --clean --windowed --onefile \
154+
cd annotation_tool
155+
156+
python -m PyInstaller --noconfirm --clean --windowed --onefile \
143157
--name "SoccerNetProAnalyzer" \
144158
--add-data "style:style" \
145159
--add-data "ui:ui" \
146-
--add-data "ui2:ui2" \
160+
--add-data "controllers:controllers" \
147161
main.py
148162
```
149163

150-
In GitHub Actions, the Windows ```bash--add-data``` separator is ```;``` instead of ```:```.
164+
Output:
151165

166+
* `annotation_tool/dist/SoccerNetProAnalyzer`
152167

153-
### 🤖 How executables are built (CI / GitHub Releases)
154168

155-
In addition to manual PyInstaller builds, standalone executables are automatically built and published using GitHub Actions.
169+
#### Windows (PowerShell)
156170

157-
When a version tag (v* or V* such as V1.0.7) is pushed to the repository, a release workflow is triggered (`.github/workflows/release.yml`).
158-
This workflow:
171+
On Windows, the `--add-data` separator is **`;`** (not `:`).
159172

160-
- Builds standalone GUI executables using PyInstaller
161-
- Targets Windows, macOS, and Linux separately
162-
- Bundles required UI assets (`ui/`, `ui2/`, `style/`) into the binary
163-
- Packages each platform binary into a ZIP archive
164-
- Uploads the artifacts to the corresponding GitHub Release
173+
```powershell
174+
cd annotation_tool
165175
166-
The build logic in the CI pipeline mirrors the manual PyInstaller commands described above, ensuring consistency between local and automated builds.
176+
python -m PyInstaller --noconfirm --clean --windowed --onefile `
177+
--name "SoccerNetProAnalyzer" `
178+
--add-data "style;style" `
179+
--add-data "ui;ui" `
180+
--add-data "controllers;controllers" `
181+
main.py
182+
```
167183

168-
CI workflows overview:
184+
Output:
169185

170-
- `ci.yml`: Continuous integration (linting / checks)
171-
- `release.yml`: Multi-platform executable build and GitHub Release publishing
172-
- `deploy_docs.yml`: Documentation build and deployment (MkDocs)
186+
* `annotation_tool\dist\SoccerNetProAnalyzer.exe`
173187

174188
---
175-
## 📚 Build the docs
176-
```bash
177-
pip install mkdocs mkdocs-material mkdocstrings[python]
178-
mkdocs gh-deploy --force
179-
```
189+
190+
## 🤖 How executables are built (CI / GitHub Releases)
191+
192+
In addition to manual PyInstaller builds, standalone executables are automatically built using GitHub Actions.
193+
194+
### Release builds (GitHub Releases)
195+
196+
When a version tag matching `v*` or `V*` (e.g., `v1.0.7`) is pushed, the release workflow runs:
197+
198+
* Workflow: `.github/workflows/release.yml`
199+
* Builds for: **Windows**, **macOS**, **Linux**
200+
* Packages outputs into ZIP archives
201+
* Uploads ZIP files as **GitHub Release assets**
202+
* Generates release notes from recent commit messages
203+
204+
The build commands in CI mirror the manual PyInstaller commands above (including bundling `style/`, `ui/`, and `controllers/`).
205+
206+
### Manual build artifacts (workflow dispatch)
207+
208+
There is also a standalone build workflow that can be triggered manually:
209+
210+
* Workflow: `.github/workflows/CL.yml`
211+
* Builds for: **Windows**, **macOS**, **Linux**
212+
* On **manual run** (`workflow_dispatch`), it zips the binaries and uploads them as **Actions artifacts** (short retention)
213+
214+
### CI workflows overview
215+
216+
* `CL.yml`: Multi-platform build (manual artifacts on `workflow_dispatch`; also runs on pushes to selected branches)
217+
* `release.yml`: Multi-platform build + GitHub Release publishing (triggered by version tags)
218+
* `deploy_docs.yml`: Documentation build and deployment (MkDocs)
219+
180220

181221
---
182222

0 commit comments

Comments
 (0)