Bump schema version to v0.3.0 (#658) #12
Workflow file for this run
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: Publish Packages | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| permissions: | |
| id-token: write # Required for npm provenance and JSR OIDC | |
| contents: read | |
| jobs: | |
| validate-and-publish: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "23" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Install JSR CLI | |
| run: npm install -g jsr | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Determine packages to publish | |
| id: packages | |
| run: | | |
| TAG_VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "Tag version: $TAG_VERSION" | |
| PACKAGES_TO_PUBLISH="" | |
| for pkg in schema agent-core; do | |
| if [ -f "packages/$pkg/package.json" ]; then | |
| PACKAGE_VERSION=$(node -p "require('./packages/$pkg/package.json').version") | |
| if [ "$PACKAGE_VERSION" = "$TAG_VERSION" ]; then | |
| echo "✅ Package $pkg matches tag version $TAG_VERSION" | |
| if [ -z "$PACKAGES_TO_PUBLISH" ]; then | |
| PACKAGES_TO_PUBLISH="$pkg" | |
| else | |
| PACKAGES_TO_PUBLISH="$PACKAGES_TO_PUBLISH $pkg" | |
| fi | |
| else | |
| echo "⏭️ Package $pkg version ($PACKAGE_VERSION) doesn't match tag ($TAG_VERSION)" | |
| fi | |
| fi | |
| done | |
| if [ -z "$PACKAGES_TO_PUBLISH" ]; then | |
| echo "❌ No packages match tag version $TAG_VERSION" | |
| exit 1 | |
| fi | |
| echo "packages=$PACKAGES_TO_PUBLISH" >> $GITHUB_OUTPUT | |
| echo "Packages to publish: $PACKAGES_TO_PUBLISH" | |
| - name: Validate version consistency | |
| run: | | |
| for pkg in ${{ steps.packages.outputs.packages }}; do | |
| echo "Validating $pkg..." | |
| PACKAGE_VERSION=$(node -p "require('./packages/$pkg/package.json').version") | |
| JSR_VERSION=$(node -p "require('./packages/$pkg/jsr.json').version") | |
| echo "package.json version: $PACKAGE_VERSION" | |
| echo "jsr.json version: $JSR_VERSION" | |
| if [ "$PACKAGE_VERSION" != "$JSR_VERSION" ]; then | |
| echo "❌ Version mismatch in $pkg: package.json ($PACKAGE_VERSION) != jsr.json ($JSR_VERSION)" | |
| exit 1 | |
| fi | |
| echo "✅ Versions match for $pkg: $PACKAGE_VERSION" | |
| done | |
| - name: Extract tag version | |
| id: tag_version | |
| run: | | |
| TAG_VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "tag_version=$TAG_VERSION" >> $GITHUB_OUTPUT | |
| echo "Tag version: $TAG_VERSION" | |
| - name: Run checks for all packages | |
| run: | | |
| for pkg in ${{ steps.packages.outputs.packages }}; do | |
| echo "Running checks for $pkg..." | |
| echo "Type checking..." | |
| pnpm --filter $pkg type-check | |
| echo "Lint checking..." | |
| pnpm --filter $pkg lint:check | |
| echo "Format checking..." | |
| pnpm --filter $pkg format:check | |
| echo "Testing JSR publish (dry run)..." | |
| pnpm --filter $pkg exec jsr publish --dry-run --allow-slow-types --allow-dirty | |
| echo "✅ All checks passed for $pkg" | |
| done | |
| # Disabling npm publishing... for now | |
| # - name: Publish to npm | |
| # run: | | |
| # for pkg in ${{ steps.packages.outputs.packages }}; do | |
| # echo "Publishing $pkg to npm..." | |
| # pnpm --filter $pkg publish --no-git-checks | |
| # done | |
| # env: | |
| # NPM_CONFIG_PROVENANCE: true | |
| - name: Publish to JSR | |
| run: | | |
| for pkg in ${{ steps.packages.outputs.packages }}; do | |
| echo "Publishing $pkg to JSR..." | |
| pnpm --filter $pkg exec jsr publish --allow-slow-types | |
| echo "✅ Successfully published $pkg" | |
| done |