Pular para o conteúdo principal

Python

Semaphore can run Python scripts directly. To do this, create a Python task template.

Creating a Python template

  1. Go to Task Templates section and click the New Template button.
  2. Select Python as the app type.
  3. Configure the template:
FieldDescription
NameA descriptive name for the template
RepositoryRepository containing your .py script
Playbook / ScriptRelative path to the script, e.g. scripts/deploy.py
Variable GroupsVariable groups whose values are injected as environment variables
  1. Click Create.
  2. Click Run to execute the template.

Passing variables to scripts

Variables from the selected Variable Groups are injected as environment variables. Access them in Python with os.environ:

import os

target = os.environ.get("TARGET_HOST")
print(f"Deploying to {target}")

Python version and dependencies

Semaphore uses whichever python3 binary is on PATH in the execution environment.

  • Binary/package install: ensure the correct python3 is installed on the host.
  • Docker: use a custom image with the required Python version.
  • Docker (additional packages): mount a requirements.txt at /etc/semaphore/requirements.txt in the server or runner container. Semaphore installs it into the bundled Python virtual environment on every container start. See Installing Additional Python Dependencies.

Notes

  • Scripts run non-interactively.
  • Exit code 0 means success; any non-zero exit code marks the task as failed.