Skip to content

chore: bump version to 0.7.0 #128

chore: bump version to 0.7.0

chore: bump version to 0.7.0 #128

Workflow file for this run

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`