immersive2/.github/workflows/build.yml
Michael Mainguy e2216c17e8
Some checks failed
Build and Deploy / build (push) Failing after 1m44s
Node.js CI / build (push) Has been cancelled
Add Alpine Linux service setup and CI/CD deployment
- Add ALPINE_SERVICE.md with full setup instructions
- Add start.sh script for OpenRC service
- Update build.yml for deployment to /opt/immersive
- Configure proper permissions for immersive user
- Add Gitea runner setup instructions with sudo config
- Add .env.production to gitignore

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 09:21:08 -06:00

59 lines
1.5 KiB
YAML

name: Build and Deploy
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: linux_amd64
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
timeout-minutes: 5
- name: Build Front End
run: npm run build
timeout-minutes: 10
env:
NODE_OPTIONS: '--max-old-space-size=4096'
- name: Stop Service
run: |
sudo rc-service immersive stop || true
- name: Deploy to /opt/immersive
run: |
# Remove old deployment (keep data directory if it exists)
rm -rf /opt/immersive.old
[ -d /opt/immersive ] && mv /opt/immersive /opt/immersive.old
# Copy built files to target
mkdir -p /opt/immersive
cp -r . /opt/immersive/
# Remove unnecessary directories
rm -rf /opt/immersive/.git /opt/immersive/.github
# Restore data directory from old deployment if it existed
[ -d /opt/immersive.old/data ] && mv /opt/immersive.old/data /opt/immersive/
# Clean up old deployment
rm -rf /opt/immersive.old
# Set permissions on start.sh
chmod +x /opt/immersive/start.sh
# Set ownership to immersive user
sudo chown -R immersive:immersive /opt/immersive
- name: Start Service
run: |
sudo rc-service immersive start