name: Build and Publish Portfolio on: push: branches: [main] tags: - "v*" # Trigger on version tags like v1.0.0 pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "24" cache: "" - name: Install dependencies run: npm ci - name: Upload build artifacts uses: actions/upload-artifact@v3 with: name: dist path: dist/ publish: needs: build runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') # Only publish on version tags steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "24" cache: "" - name: Install dependencies run: npm i - name: Deploy run: npm run-script cdk -- deploy