chore: bump version to 0.7.0 #128
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ['v*'] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-and-test: | |
| name: Build & Test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20, 22, 24] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Type check | |
| run: pnpm run build | |
| - name: Unit tests | |
| run: pnpm test | |
| - name: Package smoke test | |
| run: | | |
| pnpm pack | |
| TARBALL=$(ls perp-cli-*.tgz) | |
| # Verify both bins exist in the package | |
| tar -tzf "$TARBALL" | grep 'dist/index.js' | |
| tar -tzf "$TARBALL" | grep 'dist/mcp-server.js' | |
| # Install and verify bins actually run | |
| mkdir -p /tmp/smoke-test | |
| cd /tmp/smoke-test | |
| npm init -y > /dev/null 2>&1 | |
| npm install "$GITHUB_WORKSPACE/$TARBALL" > /dev/null 2>&1 | |
| npx perp --help | |
| npx perp-mcp --help || true | |
| integration: | |
| name: Integration (read-only) | |
| runs-on: ubuntu-latest | |
| # Not required — depends on external APIs that may be temporarily unavailable | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| run: pnpm run build | |
| - name: Integration tests (read-only, no API keys needed) | |
| run: pnpm run test:integration | |
| release: | |
| name: GitHub Release | |
| needs: build-and-test | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate changelog | |
| id: changelog | |
| run: | | |
| PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") | |
| if [ -n "$PREV_TAG" ]; then | |
| LOG=$(git log --oneline "$PREV_TAG"..HEAD -- ':!.omc' ':!.github') | |
| else | |
| LOG=$(git log --oneline -20) | |
| fi | |
| echo "changelog<<EOF" >> "$GITHUB_OUTPUT" | |
| echo "$LOG" >> "$GITHUB_OUTPUT" | |
| echo "EOF" >> "$GITHUB_OUTPUT" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true | |
| body: | | |
| ## Changes | |
| ${{ steps.changelog.outputs.changelog }} | |
| **npm:** `npm install -g perp-cli@${{ github.ref_name }}` | |
| **MCP:** `npx -y -p perp-cli perp-mcp` |