Files
Website/.gitlab-ci.yml
SysAdmin add81d6d4a fix: Correct CI/CD deployment script variable expansion
Fixed the deployment script to properly expand variables in the SSH
session by removing single quotes from the heredoc delimiter. Also
added error handling with 'set -e' and removed dependency on
/opt/silverlabs/website directory that doesn't exist.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 22:20:46 +01:00

80 lines
2.0 KiB
YAML

stages:
- build
- deploy
variables:
DOCKER_IMAGE: silverlabs-website
# Use Docker image
image: docker:latest
# Build Docker image
build:website:
stage: build
services:
- docker:dind
script:
- echo "Building SilverLabs Website Docker image..."
- docker build -t $DOCKER_IMAGE:latest -t $DOCKER_IMAGE:${CI_COMMIT_SHORT_SHA} .
- docker images
tags:
- docker
only:
- master
- main
# Deploy to production server (PORTAINER-01)
deploy:production:
stage: deploy
image: docker:latest
services:
- docker:dind
dependencies:
- build:website
before_script:
- apk add --no-cache sshpass openssh-client
script:
- echo "🚀 Deploying SilverLabs Website to silverlabs.uk (PORTAINER-01)"
# Build Docker image
- docker build -t $DOCKER_IMAGE:latest -t $DOCKER_IMAGE:${CI_COMMIT_SHORT_SHA} .
# Save and transfer image to server
- docker save $DOCKER_IMAGE:latest | gzip > /tmp/$DOCKER_IMAGE-image.tar.gz
- sshpass -p "Phenom12#." scp -o StrictHostKeyChecking=no /tmp/$DOCKER_IMAGE-image.tar.gz sysadmin@10.0.0.51:/tmp/
# Deploy on server
- |
sshpass -p "Phenom12#." ssh -o StrictHostKeyChecking=no sysadmin@10.0.0.51 << ENDSSH
set -e
# Load Docker image
docker load < /tmp/silverlabs-website-image.tar.gz
# Stop and remove old container
docker stop silverlabs-website 2>/dev/null || true
docker rm silverlabs-website 2>/dev/null || true
# Start new container
docker run -d \
--name silverlabs-website \
--restart unless-stopped \
-p 8100:80 \
silverlabs-website:latest
# Verify deployment
docker ps | grep silverlabs-website
# Cleanup
rm /tmp/silverlabs-website-image.tar.gz
echo "✅ Deployment complete!"
ENDSSH
environment:
name: production
url: https://silverlabs.uk
only:
- master
- main
tags:
- docker