name: Deploy Pipeline on: push: branches: [main] workflow_dispatch: inputs: environment: description: 'Target' required: true default: 'production' type: choice options: [staging, production] jobs: pipeline: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: 'yarn' - name: Install run: yarn install --frozen-lockfile --prefer-offline - name: Validation run: | yarn oxlint . yarn svelte-check - name: Build for Production run: yarn build env: NODE_ENV: production - name: Deploy Step run: | echo "Deploying dist/ to ${{ github.event.inputs.environment || 'production' }}..." # EXAMPLE: rsync -avz dist/ user@your-vps:/var/www/html/