name: Deploy on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Write SSH key run: | echo "${{ secrets.DEPLOY_SSH_KEY }}" > /tmp/deploy_key chmod 600 /tmp/deploy_key - name: Sync files run: | rsync -avz --delete \ -e "ssh -i /tmp/deploy_key -o StrictHostKeyChecking=no -p ${{ secrets.DEPLOY_SSH_PORT || 22 }}" \ --exclude='.git' \ --exclude='.gitea' \ --exclude='deploy' \ ./ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/srv/catalyst/ - name: Install dependencies and restart run: | ssh -i /tmp/deploy_key \ -o StrictHostKeyChecking=no \ -p ${{ secrets.DEPLOY_SSH_PORT || 22 }} \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ "cd /srv/catalyst && npm ci && pm2 restart catalyst || pm2 start npm --name catalyst -- start" - name: Cleanup if: always() run: rm -f /tmp/deploy_key