각 패키지에 대한 테스트 환경 설정 (issue #1) #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Package CI | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Fetch main branch | |
run: git fetch origin main | |
- name: Get changed workspaces | |
id: changesets | |
run: | | |
CHANGED_WORKSPACES=$(git diff --name-only origin/main...HEAD -- packages/ | grep 'packages/' | cut -d '/' -f 2 | sort | uniq) | |
echo "Changed workspaces: $CHANGED_WORKSPACES" | |
echo "CHANGED_WORKSPACES=$CHANGED_WORKSPACES" >> $GITHUB_ENV | |
- name: Add empty changeset if necessary | |
if: env.CHANGED_WORKSPACES != '' | |
run: | | |
if pnpm changeset status --since-ref main --verbose | grep -q 'Some packages have been changed'; then | |
pnpm changeset add --empty | |
fi | |
- name: Run tests for changed packages | |
if: env.CHANGED_WORKSPACES != '' | |
run: | | |
for package in ${{ env.CHANGED_WORKSPACES }}; do | |
echo "Running tests for package: $package" | |
pnpm -r --filter "./packages/$package" test | |
done |