espressif/Python Binary Build Action
Build Python applications into standalone executables for multiple architectures
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 7, 2026
- License
- Apache 2.0
Pinned Snippet
uses: espressif/python-binary-action@b7d9c899ef131570d6be8b7ba7c8d21f9b268c82 # no releases — HEAD as of 2026-07-11tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| scripts | Space-separated list of Python scripts to build | yes | — |
| output-dir | Output directory for built executables | yes | — |
| include-data-dirs | JSON object mapping script names to data directories to include. Supports wildcards (*) and exact matches. Format: {"script.py": ["./data"], "*": ["./common"]} | no | [] |
| script-name | Space-separated list of output names for executables. Must match the length of `scripts` variable. If not provided, the script name will be used. | no | "" |
| icon-file | Path to icon file (Windows only) | no | "" |
| target-platform | Target platform: windows-amd64, linux-amd64, macos-amd64, macos-arm64, linux-armv7, linux-aarch64 | yes | — |
| python-version | Python version to use for building. Make sure that the version is available on all runners. | no | 3.13 |
| pyinstaller-version | PyInstaller version to install. Default is 6.11.1 because it has the lowest false positive rate with antivirus. For latest version, use empty string. | no | 6.11.1 |
| additional-args | Additional PyInstaller arguments | no | "" |
| pip-extra-index-url | Extra Python Package Index URL | no | https://dl.espressif.com/pypi |
| install-deps-command | Command to install project dependencies. Command will be executed like `uv pip install {install-deps-command}` | no | uv pip install -e . |
| additional-arm-packages | ARMv7 ONLY: Optional extra apt packages (space-separated). The Espressif idf-python-wheels-armv7l image already includes build tools, libffi-dev, libssl-dev, patchelf, etc.; omit this unless you need more. | no | "" |
| test-command-args | Command arguments to test binaries (e.g. "--help") | no | --help |
| azure-client-id | Azure client ID for espressif/release-sign action | no | "" |
| azure-client-secret | Azure client secret for espressif/release-sign action | no | "" |
| azure-tenant-id | Azure tenant ID for espressif/release-sign action | no | "" |
| azure-keyvault-uri | Azure key vault URI for espressif/release-sign action | no | "" |
| azure-keyvault-cert-name | Azure key vault certificate name for espressif/release-sign action | no | "" |
| macos-signing-identity | macOS code signing identity for espressif/release-sign action (e.g. "Developer ID Application Name (TEAM_ID)") | no | "" |
| macos-certificate | Base64-encoded .p12 certificate for macOS code signing (espressif/release-sign) | no | "" |
| macos-certificate-pwd | Password for the macOS .p12 certificate (espressif/release-sign) | no | "" |
| macos-entitlements | Path to entitlements file for codesign during PyInstaller build and espressif/release-sign (optional) | no | "" |
| notarization-username | Apple ID for notarization (espressif/release-sign). Used only on tag pushes. | no | "" |
| notarization-password | App-specific password for notarization (espressif/release-sign). Used only on tag pushes. | no | "" |
| notarization-team-id | Apple Team ID for notarization (espressif/release-sign). Used only on tag pushes. | no | "" |
Outputs
| name | description |
|---|---|
| executable-extension | File extension of built executables |
| build-success | Whether the build was successful |