espressif/Python Binary Build Action

Build Python applications into standalone executables for multiple architectures

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 7, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: espressif/python-binary-action@b7d9c899ef131570d6be8b7ba7c8d21f9b268c82 # no releases — HEAD as of 2026-07-11

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
scriptsSpace-separated list of Python scripts to buildyes
output-dirOutput directory for built executablesyes
include-data-dirsJSON object mapping script names to data directories to include. Supports wildcards (*) and exact matches. Format: {"script.py": ["./data"], "*": ["./common"]}no[]
script-nameSpace-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-filePath to icon file (Windows only)no""
target-platformTarget platform: windows-amd64, linux-amd64, macos-amd64, macos-arm64, linux-armv7, linux-aarch64yes
python-versionPython version to use for building. Make sure that the version is available on all runners.no3.13
pyinstaller-versionPyInstaller version to install. Default is 6.11.1 because it has the lowest false positive rate with antivirus. For latest version, use empty string.no6.11.1
additional-argsAdditional PyInstaller argumentsno""
pip-extra-index-urlExtra Python Package Index URLnohttps://dl.espressif.com/pypi
install-deps-commandCommand to install project dependencies. Command will be executed like `uv pip install {install-deps-command}`nouv pip install -e .
additional-arm-packagesARMv7 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-argsCommand arguments to test binaries (e.g. "--help")no--help
azure-client-idAzure client ID for espressif/release-sign actionno""
azure-client-secretAzure client secret for espressif/release-sign actionno""
azure-tenant-idAzure tenant ID for espressif/release-sign actionno""
azure-keyvault-uriAzure key vault URI for espressif/release-sign actionno""
azure-keyvault-cert-nameAzure key vault certificate name for espressif/release-sign actionno""
macos-signing-identitymacOS code signing identity for espressif/release-sign action (e.g. "Developer ID Application Name (TEAM_ID)")no""
macos-certificateBase64-encoded .p12 certificate for macOS code signing (espressif/release-sign)no""
macos-certificate-pwdPassword for the macOS .p12 certificate (espressif/release-sign)no""
macos-entitlementsPath to entitlements file for codesign during PyInstaller build and espressif/release-sign (optional)no""
notarization-usernameApple ID for notarization (espressif/release-sign). Used only on tag pushes.no""
notarization-passwordApp-specific password for notarization (espressif/release-sign). Used only on tag pushes.no""
notarization-team-idApple Team ID for notarization (espressif/release-sign). Used only on tag pushes.no""
namedescription
executable-extensionFile extension of built executables
build-successWhether the build was successful