name: Deploy to Server on: push: branches: - main paths-ignore: - 'README.md' - '**.yml' jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Install dependencies run: npm install --force - name: Build project run: npm run build - name: Setup SSH uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Add host key run: | mkdir -p ~/.ssh ssh-keyscan -p ${{ secrets.SSH_PORT || 22 }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts - name: Deploy to server run: | rsync -avz --delete -e "ssh -p ${{ secrets.SSH_PORT || 22 }}" \ dist/ \ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/opt/1panel/apps/openresty/openresty/www/sites/svr.czl.net/index/ - name: Change file ownership run: | ssh -p ${{ secrets.SSH_PORT || 22 }} ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }} \ 'sudo chown -R 1000:1000 /opt/1panel/apps/openresty/openresty/www/sites/svr.czl.net/index/'