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:
88 stage: build
99 script:
1010 - 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"
1212 artifacts:
1313 paths:
1414 - .build/
1515
1616deploy-job:
1717 stage: deploy
18 dependencies:
19 - build-job
1820 script:
1921 - mkdir -p $HOME/.ssh
20 - chmod 700 $HOME/.ssh
2122 - ssh-keyscan -p 2169 $SERVER_IP >> $HOME/.ssh/known_hosts
2223 - |
2324 echo "Host homelab-remote
@@ -25,5 +26,7 @@ deploy-job:
2526 User $SERVER_USER
2627 Port 2169" > $HOME/.ssh/config
2728 - chmod 600 $HOME/.ssh/config
29 - eval $(ssh-agent -s)
30 - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
2831 - echo "Deploying via Python script..."
2932 - ENV=prod uv run build.py <<< "r"
build.py +6 −1
@@ -352,6 +352,8 @@ def main():
352352 css_min = theme_dir / "styles.min.css"
353353
354354 env = os.environ.get("ENV", "").casefold()
355 skip_deploy = os.environ.get("SKIP_DEPLOY", "").casefold() == "true"
356
355357 if env == "prod":
356358 print("Environment: Production")
357359 method = prompt("Publishing on remote or LAN? [r|l] ").lower()
@@ -382,7 +384,10 @@ def main():
382384 generate_sitemap()
383385
384386 # 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.")
386391
387392 else:
388393 print("Environment: Development")