Files
iled-shop/.drone.yml
T
miczekandCursor 17393dba5e
continuous-integration/drone/push Build was killed
ci: serialize builds for low-memory Pi runner
Cap MSBuild to one node and Angular to one worker so api/shop/admin
fit under the 2GiB Drone step limit (slower, less OOM).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 03:44:23 +03:00

121 lines
2.5 KiB
YAML

# 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