Commit b509b08d52

b509b08d520142d69de1ad0a1b9ec68f771dd9ab

parent: 1c626b1339

Unsigned

cmc <hello@cleberg.net> · 2026-02-10 19:11 UTC

split build and deploy steps in python script

Layout: unified · split

.gitlab-ci.yml +5 −2
@@ -8,16 +8,17 @@ build-job:
8 stage: build 8 stage: build
9 script: 9 script:
10 - echo "Environment is ready. Running build..." 10 - echo "Environment is ready. Running build..."
11 - ENV=prod uv run build.py <<< "r" 11 - ENV=prod SKIP_DEPLOY=true uv run build.py <<< "r"
12 artifacts: 12 artifacts:
13 paths: 13 paths:
14 - .build/ 14 - .build/
15 15
16deploy-job: 16deploy-job:
17 stage: deploy 17 stage: deploy
18 dependencies:
19 - build-job
18 script: 20 script:
19 - mkdir -p $HOME/.ssh 21 - mkdir -p $HOME/.ssh
20 - chmod 700 $HOME/.ssh
21 - ssh-keyscan -p 2169 $SERVER_IP >> $HOME/.ssh/known_hosts 22 - ssh-keyscan -p 2169 $SERVER_IP >> $HOME/.ssh/known_hosts
22 - | 23 - |
23 echo "Host homelab-remote 24 echo "Host homelab-remote
@@ -25,5 +26,7 @@ deploy-job:
25 User $SERVER_USER 26 User $SERVER_USER
26 Port 2169" > $HOME/.ssh/config 27 Port 2169" > $HOME/.ssh/config
27 - chmod 600 $HOME/.ssh/config 28 - chmod 600 $HOME/.ssh/config
29 - eval $(ssh-agent -s)
30 - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
28 - echo "Deploying via Python script..." 31 - echo "Deploying via Python script..."
29 - ENV=prod uv run build.py <<< "r" 32 - ENV=prod uv run build.py <<< "r"
build.py +6 −1
@@ -352,6 +352,8 @@ def main():
352 css_min = theme_dir / "styles.min.css" 352 css_min = theme_dir / "styles.min.css"
353 353
354 env = os.environ.get("ENV", "").casefold() 354 env = os.environ.get("ENV", "").casefold()
355 skip_deploy = os.environ.get("SKIP_DEPLOY", "").casefold() == "true"
356
355 if env == "prod": 357 if env == "prod":
356 print("Environment: Production") 358 print("Environment: Production")
357 method = prompt("Publishing on remote or LAN? [r|l] ").lower() 359 method = prompt("Publishing on remote or LAN? [r|l] ").lower()
@@ -382,7 +384,10 @@ def main():
382 generate_sitemap() 384 generate_sitemap()
383 385
384 # Deploy changes 386 # Deploy changes
385 deploy_to_server(build_dir, homelab_server) 387 if not skip_deploy:
388 deploy_to_server(build_dir, homelab_server)
389 else:
390 print("SKIP_DEPLOY is true. Skipping rsync step.")
386 391
387 else: 392 else:
388 print("Environment: Development") 393 print("Environment: Development")