Commit b509b08d52
Unsigned
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 | ||
| 16 | deploy-job: | 16 | deploy-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") |