name: Development Environment on: # Temporarily disabled # push: # branches: [main] # pull_request: # branches: [main] workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "22" - name: Install dependencies run: npm install - name: Build project run: npm run build - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: dist path: dist deploy: needs: build runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: Download build artifacts uses: actions/download-artifact@v4 with: name: dist path: dist - name: Setup SSH Key uses: webfactory/ssh-agent@v0.8.0 with: ssh-private-key: ${{ secrets.PRODUCTION_SSH_KEY }} - name: Add host to known hosts run: | mkdir -p ~/.ssh ssh-keyscan -H ${{ vars.PRODUCTION_SERVER }} >> ~/.ssh/known_hosts - name: Deploy to production server run: | rsync -avz --delete dist/ root@${{ vars.PRODUCTION_SERVER }}:${{ vars.PRODUCTION_DIR }}