Skip to content

feat: add posthog telemetry to all CLI commands and top-level SDK met… #9

feat: add posthog telemetry to all CLI commands and top-level SDK met…

feat: add posthog telemetry to all CLI commands and top-level SDK met… #9

Workflow file for this run

name: Release Dev
on:
push:
tags:
- "v*-dev*"
permissions:
contents: write
id-token: write
env:
NODE_VERSION: "20.x"
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Enforce dev tag format
run: |
VERSION="${{ github.ref_name }}"
if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+-dev ]]; then
echo "Version '$VERSION' does not match required pattern v<major>.<minor>.<patch>-dev*"
exit 1
fi
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Set version from tag
run: |
# Clean leading v from provided version
PACKAGE_VERSION="${VERSION#v}"
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV
echo "Building dev version: $PACKAGE_VERSION"
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: "https://registry.npmjs.org"
cache: "pnpm"
- name: Install dependencies
working-directory: .
run: pnpm install --frozen-lockfile
- name: Build SDK (dev) - dependency for CLI
working-directory: ./packages/sdk
env:
BUILD_TYPE: dev
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
POSTHOG_API_KEY_BUILD_TIME: ${{ secrets.POSTHOG_API_KEY }}
run: |
pnpm run build
- name: Build CLI (dev)
working-directory: ./packages/cli
env:
BUILD_TYPE: dev
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
POSTHOG_API_KEY_BUILD_TIME: ${{ secrets.POSTHOG_API_KEY }}
run: |
pnpm run build
- name: Get short sha
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
env:
GITHUB_SHA: ${{ github.sha }}
- name: Generate SDK VERSION file
working-directory: ./packages/sdk
env:
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
GITHUB_SHA: ${{ env.SHORT_SHA }}
run: |
node scripts/generate-version.js
- name: Generate CLI VERSION file
working-directory: ./packages/cli
env:
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
GITHUB_SHA: ${{ env.SHORT_SHA }}
run: |
node scripts/generate-version.js
- name: Update SDK package.json for publishing
working-directory: ./packages/sdk
run: |
# Update version (keep default package name)
npm pkg set version="${{ env.PACKAGE_VERSION }}"
- name: Publish SDK to npm (dev)
working-directory: ./packages/sdk
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm publish --tag dev --access public
- name: Update CLI package.json for dev namespace
working-directory: ./packages/cli
run: |
# Update version to tag as dev
npm pkg set version="${{ env.PACKAGE_VERSION }}"
# Update SDK dependency to match published version
npm pkg set "dependencies.@layr-labs/ecloud-sdk"="${{ env.PACKAGE_VERSION }}"
# Verify changes
cat package.json | grep -A 2 '"name"'
cat package.json | grep -A 1 '"@layr-labs/ecloud-sdk"'
- name: Publish CLI to npm (dev)
working-directory: ./packages/cli
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm publish --tag dev --access public
- name: Summary
run: |
echo "✅ Dev release published successfully!"
echo "📦 SDK Package: @layr-labs/ecloud-sdk@${{ env.PACKAGE_VERSION }} (tag: dev)"
echo "📦 CLI Package: @layr-labs/ecloud-cli@${{ env.PACKAGE_VERSION }} (tag: dev)"
echo "🏷️ Tag: dev"
echo "🔗 Install with: npm install -g @layr-labs/ecloud-cli@dev"