Skip to content

Deploy Sync

Deploy Sync #6

Workflow file for this run

name: Deploy Sync
on: [workflow_dispatch]
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./packages/sync/
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
cache: 'yarn'
cache-dependency-path: ./packages/sync/yarn.lock
- run: yarn install
- run: yarn build
- run: yarn test
- name: Configure SSH
run: |
mkdir -p ~/.ssh/
echo "$REMOTE_SYNC_KEY" > ~/.ssh/sync.key
chmod 600 ~/.ssh/sync.key
cat >>~/.ssh/config <<END
Host sync
HostName $REMOTE_SYNC_HOST
User $REMOTE_SYNC_USER
IdentityFile ~/.ssh/sync.key
StrictHostKeyChecking no
END
env:
REMOTE_SYNC_USER: ${{ secrets.REMOTE_SYNC_USER }}
REMOTE_SYNC_KEY: ${{ secrets.REMOTE_SYNC_KEY }}
REMOTE_SYNC_HOST: ${{ secrets.REMOTE_SYNC_HOST }}
- name: Write Environment Variables
run: |
cat >>./dist/.env <<END
API_HOST="$API_HOST"
API_USER="$API_USER"
API_PASS="$API_PASS"
LOG_DIR="/var/log/hearthbot"
env:
API_HOST: ${{ secrets.ENV_SYNC_API_HOST }}
API_USER: ${{ secrets.ENV_SYNC_API_USER }}
API_PASS: ${{ secrets.ENV_SYNC_API_PASS }}
- name: rsync build
run: rsync -aP dist/ sync:${{ secrets.REMOTE_SYNC_PATH }}
- name: Restart service
run: ssh sync 'pm2 restart sync --update-env &> /dev/null'