From b509b08d520142d69de1ad0a1b9ec68f771dd9ab Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Tue, 10 Feb 2026 13:11:25 -0600 Subject: split build and deploy steps in python script --- .gitlab-ci.yml | 7 +++++-- build.py | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 34af04b..0a24814 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,16 +8,17 @@ build-job: stage: build script: - echo "Environment is ready. Running build..." - - ENV=prod uv run build.py <<< "r" + - ENV=prod SKIP_DEPLOY=true uv run build.py <<< "r" artifacts: paths: - .build/ deploy-job: stage: deploy + dependencies: + - build-job script: - mkdir -p $HOME/.ssh - - chmod 700 $HOME/.ssh - ssh-keyscan -p 2169 $SERVER_IP >> $HOME/.ssh/known_hosts - | echo "Host homelab-remote @@ -25,5 +26,7 @@ deploy-job: User $SERVER_USER Port 2169" > $HOME/.ssh/config - chmod 600 $HOME/.ssh/config + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - echo "Deploying via Python script..." - ENV=prod uv run build.py <<< "r" diff --git a/build.py b/build.py index 3e9affd..7b19123 100644 --- a/build.py +++ b/build.py @@ -352,6 +352,8 @@ def main(): css_min = theme_dir / "styles.min.css" env = os.environ.get("ENV", "").casefold() + skip_deploy = os.environ.get("SKIP_DEPLOY", "").casefold() == "true" + if env == "prod": print("Environment: Production") method = prompt("Publishing on remote or LAN? [r|l] ").lower() @@ -382,7 +384,10 @@ def main(): generate_sitemap() # Deploy changes - deploy_to_server(build_dir, homelab_server) + if not skip_deploy: + deploy_to_server(build_dir, homelab_server) + else: + print("SKIP_DEPLOY is true. Skipping rsync step.") else: print("Environment: Development") -- cgit v1.2.3