Skip to content

refactor: migrate from npm to pnpm (#96) #152

refactor: migrate from npm to pnpm (#96)

refactor: migrate from npm to pnpm (#96) #152

# This workflow is designed to build and synthesize each push to reduce risk of failing builds moving into main
name: Build and Synthesize
on:
push:
branches:
- '**'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ vars.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build project
run: pnpm run build
- name: Upload UI Artifact
uses: actions/upload-artifact@v4
with:
name: built-ui
path: lib/user-interface/genai-newsletter-ui/dist/
- name: Upload AppSync Resolver Artifacts
uses: actions/upload-artifact@v4
with:
name: built-resolver-functions
path: lib/api/functions/out
synthesis:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ vars.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Download UI Artifact
uses: actions/download-artifact@v4
with:
name: built-ui
path: lib/user-interface/genai-newsletter-ui/dist/
merge-multiple: true
- name: Download Resolver Function Artifacts
uses: actions/download-artifact@v4
with:
name: built-resolver-functions
path: lib/api/functions/out/
merge-multiple: true
- name: Generate Configuration file
run: echo "${DEPLOY_CONFIG}" > ./bin/config.json
env:
DEPLOY_CONFIG: ${{ vars.DEPLOY_CONFIG }}
- name: Synthesize CDK
run: npx cdk synth