initial: action/site-publish @v1
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""Ensure required CLI tools are installed."""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def ensure_aws():
|
||||
if shutil.which("aws"):
|
||||
subprocess.run(["aws", "--version"], check=True)
|
||||
return
|
||||
print("Installing awscli...")
|
||||
subprocess.run(
|
||||
[sys.executable, "-m", "pip", "install", "--quiet", "--break-system-packages", "awscli"],
|
||||
check=False,
|
||||
)
|
||||
local_bin = os.path.expanduser("~/.local/bin")
|
||||
os.environ["PATH"] = f"{local_bin}:{os.environ['PATH']}"
|
||||
github_path = os.environ.get("GITHUB_PATH")
|
||||
if github_path:
|
||||
with open(github_path, "a") as f:
|
||||
f.write(f"{local_bin}\n")
|
||||
subprocess.run(["aws", "--version"], check=True)
|
||||
|
||||
|
||||
def ensure_docker():
|
||||
if shutil.which("docker"):
|
||||
subprocess.run(["docker", "version", "--format", "{{.Client.Version}}"], check=True)
|
||||
return
|
||||
print("WARNING: docker CLI not found — docker builds will fail", file=sys.stderr)
|
||||
|
||||
|
||||
def ensure_jinja2():
|
||||
try:
|
||||
import jinja2
|
||||
except ImportError:
|
||||
print("Installing jinja2 + pyyaml...")
|
||||
subprocess.run(
|
||||
[sys.executable, "-m", "pip", "install", "--quiet", "--break-system-packages", "jinja2", "pyyaml"],
|
||||
check=True,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
ensure_jinja2()
|
||||
ensure_aws()
|
||||
ensure_docker()
|
||||
print("Setup complete")
|
||||
Reference in New Issue
Block a user