name: Deploy React on: push: branches: - master jobs: build-and-deploy: runs-on: ubuntu-latest container: image: node:20 steps: - name: Checkout uses: actions/checkout@v4 - name: Install deps run: npm ci - name: Build run: npm run build - name: Archive build run: tar -czf build.tar.gz dist - name: Setup SSH run: | mkdir -p ~/.ssh echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan 79.137.75.155 >> ~/.ssh/known_hosts # Upload scp build.tar.gz deploy@79.137.75.155:/tmp/ # Deploy ssh deploy@79.137.75.155 << 'EOF' rm -rf /var/www/hotel-demo/assets rm -rf /var/www/hotel-demo/index.html tar -xzf /tmp/build.tar.gz -C /var/www/hotel-demo sudo systemctl reload nginx EOF