# Drone CI/CD for iLED shop # Repo secrets (Drone UI → Settings → Secrets): # ssh_host, ssh_user, ssh_key — deploy host # ssh_port — optional, default 22 # deploy_path — absolute path on host (e.g. /opt/iled-shop) # # First-time host setup: # git clone ssh://git@git.zea.lt:2222/miczek/iled-shop.git $DEPLOY_PATH # cd $DEPLOY_PATH/docker && cp .env.example .env # then edit secrets # # Pi note: steps serialize workers so builds fit under DRONE_MEMORY_LIMIT (~2GiB). kind: pipeline type: docker name: ci platform: os: linux arch: arm64 clone: depth: 50 concurrency: limit: 1 steps: - name: api image: mcr.microsoft.com/dotnet/sdk:10.0 environment: # One MSBuild node; disable node reuse — lower peak RAM on 4GB Pi DOTNET_CLI_TELEMETRY_OPTOUT: "1" MSBUILDDISABLENODEREUSE: "1" commands: - cd src/backend - dotnet restore iLED.slnx - dotnet build iLED.slnx -c Release --no-restore -m:1 - name: shop image: node:22-bookworm environment: NG_BUILD_MAX_WORKERS: "1" NODE_OPTIONS: "--max-old-space-size=1536" commands: - cd src/shop - npm ci - npm run build -- --configuration=production depends_on: - api - name: admin image: node:22-bookworm environment: NG_BUILD_MAX_WORKERS: "1" NODE_OPTIONS: "--max-old-space-size=1536" commands: - cd src/admin - npm ci - npm run build -- --configuration=production depends_on: - shop trigger: event: - push - pull_request - custom --- kind: pipeline type: docker name: deploy platform: os: linux arch: arm64 depends_on: - ci clone: disable: true concurrency: limit: 1 steps: - name: ssh-deploy image: appleboy/drone-ssh settings: host: from_secret: ssh_host username: from_secret: ssh_user key: from_secret: ssh_key port: from_secret: ssh_port script_stop: true envs: - DEPLOY_PATH script: - set -euo pipefail - cd "${DEPLOY_PATH}" - git fetch origin - git checkout "${DRONE_COMMIT_SHA}" - cd docker - docker compose --profile full pull || true - docker compose --profile full up -d --build --remove-orphans - docker compose --profile full ps environment: DEPLOY_PATH: from_secret: deploy_path trigger: branch: - master - main event: - push