-
Notifications
You must be signed in to change notification settings - Fork 2
Standalone Build
serbanb11 edited this page Apr 5, 2026
·
2 revisions
Build a single-file executable that runs without Python installed.
# Install build dependency
pip install -e ".[build]"
# Build single-file executable (~90 MB)
python build.py
# Build one-directory bundle (faster startup)
python build.py --onedir
# Clean previous builds first
python build.py --cleanOutput: dist/gws-auditor (Linux) or dist/gws-auditor.exe (Windows).
Download from the Releases page:
| Platform | Filename |
|---|---|
| Linux x86_64 | gws-auditor-linux-amd64 |
| Windows x86_64 | gws-auditor-windows-amd64.exe |
Standalone binaries don't include a config.yaml, so you must pass authentication arguments on the command line:
# Minimum required arguments
./gws-auditor-linux-amd64 --credentials credentials.json --subject admin@yourdomain.com
# With optional flags
./gws-auditor-linux-amd64 --credentials credentials.json --subject admin@yourdomain.com --customer-id C0abc123 -vNote:
--subject(super-admin email for domain-wide delegation) is required when noconfig.yamlis present. Without it, all API calls will fail with permission errors.
The build uses PyInstaller with a custom spec file (gws-auditor.spec) that:
- Auto-discovers all 16+ check modules (decorator-registered)
- Bundles Jinja2 HTML report templates
- Bundles dashboard CSS/JS assets
- Handles frozen-mode path resolution via
_frozen.py - Excludes heavy optional dependencies (tkinter, matplotlib, numpy)
Push a git tag v* to trigger .github/workflows/build-executable.yml:
- Builds on
ubuntu-20.04(Linux) andwindows-latest - Runs tests first
- Smoke-tests the executable
- Attaches binaries to the GitHub release
git tag -a v0.1.0 -m "v0.1.0"
git push origin v0.1.0| Platform | Requirement |
|---|---|
| Linux | glibc 2.29+ (Ubuntu 20.04+, CentOS 8+) |
| Windows | Windows 10+ with Visual C++ Redistributable |