mirror of
https://github.com/complexcaresolutions/frontend.sensualmoment.de.git
synced 2026-03-17 15:03:54 +00:00
ci: add GitHub Actions deploy workflows for staging and production
This commit is contained in:
parent
fd25fe78e4
commit
5204223113
2 changed files with 89 additions and 0 deletions
49
.github/workflows/deploy-production.yml
vendored
Normal file
49
.github/workflows/deploy-production.yml
vendored
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
name: Deploy to Production
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main'
|
||||
steps:
|
||||
- name: Deploy via SSH
|
||||
uses: appleboy/ssh-action@v1
|
||||
with:
|
||||
host: ${{ secrets.PROD_SSH_HOST }}
|
||||
port: ${{ secrets.PROD_SSH_PORT }}
|
||||
username: ${{ secrets.PROD_SSH_USER }}
|
||||
key: ${{ secrets.PROD_SSH_KEY }}
|
||||
command_timeout: 15m
|
||||
script_stop: true
|
||||
script: |
|
||||
echo "=== Deploying sensualmoment.de to production ==="
|
||||
|
||||
su - sensualmoment_admin -s /bin/bash -c '
|
||||
set -e
|
||||
export PATH=/opt/plesk/node/22/bin:/usr/local/bin:/usr/bin:/bin
|
||||
cd /var/www/vhosts/sensualmoment.de/httpdocs
|
||||
|
||||
echo "--- Git pull ---"
|
||||
git pull origin main
|
||||
|
||||
echo "--- Update payload-contracts ---"
|
||||
npm update @c2s/payload-contracts
|
||||
|
||||
echo "--- Install dependencies ---"
|
||||
npm install --legacy-peer-deps --production=false
|
||||
|
||||
echo "--- Build ---"
|
||||
npm run build
|
||||
|
||||
echo "--- Restart Passenger ---"
|
||||
mkdir -p tmp
|
||||
touch tmp/restart.txt
|
||||
|
||||
date -u +%Y-%m-%dT%H:%M:%SZ > .last-successful-deploy
|
||||
'
|
||||
|
||||
echo "=== Deploy complete ==="
|
||||
40
.github/workflows/deploy-staging.yml
vendored
Normal file
40
.github/workflows/deploy-staging.yml
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
name: Deploy to Staging
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [develop]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/develop'
|
||||
steps:
|
||||
- name: Deploy via SSH
|
||||
uses: appleboy/ssh-action@v1
|
||||
with:
|
||||
host: ${{ secrets.SSH_HOST }}
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
username: ${{ secrets.SSH_USER }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
script_stop: true
|
||||
script: |
|
||||
REPO="${{ github.event.repository.name }}"
|
||||
DIR="$HOME/${REPO}"
|
||||
|
||||
echo "=== Deploying ${REPO} to staging ==="
|
||||
cd "${DIR}" || { echo "Directory ${DIR} not found"; exit 1; }
|
||||
|
||||
echo "--- Git pull ---"
|
||||
git pull origin develop
|
||||
|
||||
echo "--- Install dependencies ---"
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
echo "--- Build ---"
|
||||
pnpm build
|
||||
|
||||
echo "--- Restart PM2 (if running) ---"
|
||||
pm2 describe "${REPO}" > /dev/null 2>&1 && pm2 restart "${REPO}" || echo "No PM2 process for ${REPO}"
|
||||
|
||||
echo "=== Deploy complete ==="
|
||||
Loading…
Reference in a new issue