Skip to content

Add .ralph/ to .gitignore #5

Add .ralph/ to .gitignore

Add .ralph/ to .gitignore #5

Workflow file for this run

name: Release
on:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
registry-url: "https://registry.npmjs.org"
- run: pnpm install --frozen-lockfile
- run: pnpm build
- run: pnpm test
- run: pnpm typecheck
- name: Verify lockstep versions
run: |
CLI_VERSION=$(node -p "require('./packages/cli/package.json').version")
MCP_VERSION=$(node -p "require('./packages/mcp/package.json').version")
echo "cli=$CLI_VERSION mcp=$MCP_VERSION"
if [ "$CLI_VERSION" != "$MCP_VERSION" ]; then
echo "::error::Version mismatch! cli=$CLI_VERSION mcp=$MCP_VERSION"
exit 1
fi
- name: Dry pack and verify tarballs
run: |
set -euo pipefail
verify_tarball() {
local pkg_dir=$1
local pkg_name=$2
shift 2
local required_files=("$@")
echo "==> Packing $pkg_name"
cd "$pkg_dir"
TARBALL=$(pnpm pack 2>/dev/null | tail -1)
echo " Tarball: $TARBALL"
CONTENTS=$(tar tzf "$TARBALL")
echo " Contents:"
echo "$CONTENTS" | sed 's/^/ /'
for file in "${required_files[@]}"; do
if echo "$CONTENTS" | grep -q "^package/${file}$"; then
echo " [OK] $file"
else
echo " [FAIL] Missing: $file"
exit 1
fi
done
rm -f "$TARBALL"
cd - > /dev/null
}
verify_tarball packages/cli "@lightfastai/climode" \
"dist/bin.mjs" \
"dist/index.mjs" \
"dist/index.d.mts" \
"package.json"
verify_tarball packages/mcp "@lightfastai/climode-mcp" \
"dist/bin.mjs" \
"dist/index.mjs" \
"dist/index.d.mts" \
"package.json"
echo ""
echo "All tarball verifications passed."
- name: Create release PR or publish
uses: changesets/action@v1
with:
publish: pnpm release:publish
title: "chore: version packages"
commit: "chore: version packages"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}