Files
gps-denied-onboard/.cursor/skills/deploy/steps/07_scripts.md
T
Oleksandr Bezdieniezhnykh 1f634c2604
ci/woodpecker/push/02-build-push Pipeline failed
Update demo replay validation and testing documentation
- Modified the autodev state to reflect the current testing phase and details of the new `jetson-e2e` tests.
- Enhanced the "How to Test" documentation to provide clearer instructions on the demo replay validation process, including video and tlog alignment steps.
- Updated architectural documentation to include the new demo replay operator flow and its dependencies.
- Documented the removal of deprecated auto-sync features and clarified the operator-facing UI for replay validation.
- Added new entries in the dependencies table for upcoming tasks related to the demo replay flow.

These changes improve clarity and usability for operators and developers working with the demo replay system.
2026-06-20 11:24:43 +03:00

2.6 KiB

Step 7: Deployment Scripts

Role: DevOps / Platform engineer Goal: Create executable deployment scripts for pulling Docker images and running services on the remote target machine. Constraints: Produce real, executable shell scripts. This is the ONLY step that creates implementation artifacts.

Steps

  1. Read containerization.md and deployment_procedures.md from previous steps
  2. Read .env.example for required variables
  3. Create the following scripts in SCRIPTS_DIR/:

deploy.sh — Main deployment orchestrator

  • Validates that required environment variables are set (sources .env if present)
  • Calls pull-images.sh, then stop-services.sh, then start-services.sh, then health-check.sh
  • Exits with non-zero code on any failure
  • Supports --rollback flag to redeploy previous image tags

pull-images.sh — Pull Docker images to target machine

  • Reads image list and tags from environment or config
  • Authenticates with container registry
  • Pulls all required images
  • Verifies image integrity (digest check)

start-services.sh — Start services on target machine

  • Runs docker compose up -d or individual docker run commands
  • Applies environment variables from .env
  • Configures networks and volumes
  • Waits for containers to reach healthy state

stop-services.sh — Graceful shutdown

  • Stops services with graceful shutdown period
  • Saves current image tags for rollback reference
  • Cleans up orphaned containers/networks

health-check.sh — Verify deployment health

  • Checks all health endpoints
  • Reports status per service
  • Returns non-zero if any service is unhealthy
  1. All scripts must:

    • Be POSIX-compatible (#!/bin/bash with set -euo pipefail)
    • Source .env from project root or accept env vars from the environment
    • Include usage/help output (--help flag)
    • Be idempotent where possible
    • Handle SSH connection to remote target (configurable via DEPLOY_HOST env var)
  2. Document all scripts in deploy_scripts.md

Self-verification

  • All five scripts created and executable
  • Scripts source environment variables correctly
  • deploy.sh orchestrates the full flow
  • pull-images.sh handles registry auth and image pull
  • start-services.sh starts containers with correct config
  • stop-services.sh handles graceful shutdown
  • health-check.sh validates all endpoints
  • Rollback supported via deploy.sh --rollback
  • Scripts work for remote deployment via SSH (DEPLOY_HOST)
  • deploy_scripts.md documents all scripts

Save action

Write scripts to SCRIPTS_DIR/. Write deploy_scripts.md using templates/deploy_scripts.md.