name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: test: name: Test & Lint runs-on: ubuntu-latest strategy: matrix: node-version: [18.x, 20.x] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: latest - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run linter run: pnpm run lint - name: Run unit tests run: pnpm run test:unit - name: Run integration tests run: pnpm run test:integration - name: Generate test coverage run: pnpm run test:coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: file: ./coverage/lcov.info fail_ci_if_error: false build: name: Build Package runs-on: ubuntu-latest needs: test steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: latest - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20.x' cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build package run: pnpm run build - name: Test CLI commands run: | node src/bin/promptx.js hello node src/bin/promptx.js --help