release: v0.18.0 #78
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: Release | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| permissions: | |
| contents: write | |
| id-token: write | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: TypeScript typecheck | |
| run: bun run typecheck | |
| - name: Lint | |
| run: bun run lint | |
| - name: Build | |
| run: bun run build | |
| - name: Test | |
| run: bun run test | |
| test-pi: | |
| name: Test (pi-plugin) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: TypeScript typecheck | |
| run: bun run --cwd packages/pi-plugin typecheck | |
| - name: Lint | |
| run: bun run --cwd packages/pi-plugin lint | |
| - name: Build | |
| run: bun run --cwd packages/pi-plugin build | |
| - name: Test | |
| run: bun run --cwd packages/pi-plugin test | |
| test-cli: | |
| name: Test (cli) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: TypeScript typecheck | |
| run: bun run --cwd packages/cli typecheck | |
| - name: Lint | |
| run: bun run --cwd packages/cli lint | |
| - name: Build | |
| run: bun run --cwd packages/cli build | |
| - name: Test | |
| run: bun run --cwd packages/cli test | |
| publish-npm: | |
| name: Publish plugin to npm | |
| runs-on: ubuntu-latest | |
| needs: [test, test-pi, test-cli] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Ensure latest npm (for trusted publishing) | |
| run: npm install -g npm@latest | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Sync version from tag | |
| run: node scripts/version-sync.mjs --from-tag | |
| - name: Build plugin | |
| run: bun run --cwd packages/plugin build | |
| - name: Generate schema | |
| run: bun packages/plugin/scripts/build-schema.ts | |
| - name: Copy README for npm package | |
| run: cp README.md packages/plugin/README.md | |
| # Uses npm Trusted Publishing (OIDC) — configured on npmjs.com | |
| - name: Publish to npm | |
| run: npm publish --access public --provenance | |
| working-directory: packages/plugin | |
| publish-npm-pi: | |
| name: Publish pi-plugin to npm | |
| runs-on: ubuntu-latest | |
| needs: [test, test-pi, test-cli] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Ensure latest npm (for trusted publishing) | |
| run: npm install -g npm@latest | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Sync version from tag | |
| run: node scripts/version-sync.mjs --from-tag | |
| - name: Build pi-plugin | |
| run: bun run --cwd packages/pi-plugin build | |
| # Uses npm Trusted Publishing (OIDC) — must be configured on npmjs.com | |
| # for @cortexkit/pi-magic-context before first release. | |
| - name: Publish to npm | |
| run: npm publish --access public --provenance | |
| working-directory: packages/pi-plugin | |
| publish-npm-cli: | |
| name: Publish unified CLI to npm | |
| runs-on: ubuntu-latest | |
| needs: [test, test-pi, test-cli] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| registry-url: "https://registry.npmjs.org" | |
| - name: Ensure latest npm (for trusted publishing) | |
| run: npm install -g npm@latest | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Sync version from tag | |
| run: node scripts/version-sync.mjs --from-tag | |
| - name: Build cli | |
| run: bun run --cwd packages/cli build | |
| # Uses npm Trusted Publishing (OIDC) — must be configured on npmjs.com | |
| # for @cortexkit/magic-context before first release. | |
| - name: Publish to npm | |
| run: npm publish --access public --provenance | |
| working-directory: packages/cli | |
| github-release: | |
| name: Create GitHub Release | |
| runs-on: ubuntu-latest | |
| # Wait for ALL three npm publishes to succeed before tagging the GitHub | |
| # release. Previously this depended only on the test jobs, so a publish | |
| # timeout or registry failure could leave a published release page on | |
| # GitHub while one of the @cortexkit/* packages was missing from npm. | |
| needs: [test, test-pi, test-cli, publish-npm, publish-npm-pi, publish-npm-cli] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true |