Refactor deployment documentation for ScriptShare, consolidating deployment guides into a single comprehensive document while removing outdated Docker deployment files and scripts. Enhance clarity on deployment options across various platforms and streamline the application structure overview.

This commit is contained in:
2025-08-20 00:43:09 +01:00
parent 68a02d1e5f
commit 58d8886480
17 changed files with 588 additions and 1893 deletions

65
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,65 @@
name: Build and Test
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Build frontend
run: npm run build
- name: Build API
run: npm run build:api
docker-build:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build frontend Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: false
tags: scriptshare-frontend:latest
- name: Build API Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.api
push: false
tags: scriptshare-api:latest
- name: Test Docker containers
run: |
# Test that images were built successfully
docker images | grep scriptshare

View File

@ -1,102 +0,0 @@
name: Deploy to DigitalOcean
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
# Test job to run before deployment
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Build frontend
run: npm run build
env:
VITE_APP_NAME: ScriptShare
VITE_APP_URL: https://scriptshare.example.com
VITE_ANALYTICS_ENABLED: true
# Deploy job (only on main branch)
deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- uses: actions/checkout@v4
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
- name: Get app info
id: app-info
run: |
APP_ID=$(doctl apps list --format ID,Spec.Name --no-header | grep scriptshare | cut -d' ' -f1)
echo "app-id=$APP_ID" >> $GITHUB_OUTPUT
- name: Trigger deployment
run: |
doctl apps create-deployment ${{ steps.app-info.outputs.app-id }} --wait
- name: Run database migrations
run: |
# Wait for deployment to complete
sleep 60
# Run migrations via the app console (if needed)
echo "Deployment completed. Please run database migrations manually if this is the first deployment."
echo "Command: npm run db:setup:prod"
# Database migration job (manual trigger)
migrate:
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run migrations
run: npm run db:migrate:prod
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
# Manual workflow dispatch for running migrations
on:
workflow_dispatch:
inputs:
action:
description: 'Action to perform'
required: true
default: 'migrate'
type: choice
options:
- migrate
- setup