Skip to main content
Glama
deleonio
by deleonio
publish.yml12.7 kB
name: 01 - Publish env: prefix: 'v4-' # remove, when v4 is released on: workflow_dispatch: inputs: increment: type: boolean description: 'Would you like to set the version before publishing? (Else: The current version from the code repository will be used.)' default: true tag: type: choice description: Which NPM tag should be assigned? options: - dev - next # - latest version: # see https://github.com/lerna/lerna/tree/main/libs/commands/version#semver-bump type: choice description: SemVer keyword for version bump options: - prerelease - prepatch - patch - preminor - minor label: # see https://github.com/lerna/lerna/tree/main/libs/commands/version#--preid type: choice description: SemVer pre release label (optional) options: - alpha - beta - rc permissions: contents: read id-token: write jobs: publish: if: github.repository == 'public-ui/kolibri' runs-on: ubuntu-latest steps: - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.PRIVATE_KEY }} - name: Get GitHub App User ID id: get-user-id run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT" env: GH_TOKEN: ${{ steps.app-token.outputs.token }} - uses: actions/checkout@v6 with: fetch-depth: 0 token: ${{ steps.app-token.outputs.token }} - name: Install Node.js uses: actions/setup-node@v6 with: node-version: 22 registry-url: https://registry.npmjs.org - name: Install pnpm uses: pnpm/action-setup@v4 id: pnpm-install with: version: 10 - name: Get pnpm store directory id: pnpm-cache shell: bash run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store restore-keys: | ${{ runner.os }}-pnpm-store - name: Install run: pnpm i --no-frozen-lockfile --no-verify-store-integrity - name: Configure Git user run: | git config --local user.email "${{ steps.get-user-id.outputs.user-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com" git config --local user.name "${{ steps.app-token.outputs.app-slug }}[bot]" - name: Bump versions without dev-tag and with git push if: github.event.inputs.increment == 'true' && github.event.inputs.tag != 'dev' run: 'HUSKY=0 npx lerna version ${{github.event.inputs.version}} --preid=${{github.event.inputs.label}} --no-private --tag-version-prefix="" -m "chore: release %v" -y --force-publish' - name: Bump versions with dev-tag and without git push if: github.event.inputs.increment == 'true' && github.event.inputs.tag == 'dev' run: 'HUSKY=0 npx lerna version prerelease --preid=$GITHUB_SHA --no-private --tag-version-prefix="" -m "chore: release %v" -y --force-publish --no-push' - name: Build run: pnpm -r build - name: Build and publish components run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/components env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter angular v19 run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/angular/v19 env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter angular v20 run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/angular/v20 env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter angular v21 run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/angular/v21 env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter react run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/react env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter react-v19 run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/react-v19 env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter react-standalone run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/react-standalone env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter solid run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/solid env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter svelte run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/svelte env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter vue run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/vue env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter preact run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/preact env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter hydrate run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/hydrate env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter react hook form run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/react-hook-form-adapter env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish tools kolibri-cli run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/tools/kolibri-cli env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish tools mcp run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/tools/mcp env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish theme default run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/themes/default env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish theme ecl run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/themes/ecl env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish themes run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/themes env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish sample react run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/samples/react env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish adapter react-v19 run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/adapters/react-v19 env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - name: Build and publish tools visual-tests run: pnpm publish --access public --provenance --no-git-checks --tag ${{env.prefix}}${{github.event.inputs.tag}} || echo "⚠️ Publish skipped – package already exists" working-directory: packages/tools/visual-tests env: NODE_AUTH_TOKEN: ${{secrets.NPMJS_GRANULAR_TOKEN}} NPM_CONFIG_PROVENANCE: true - uses: actions/setup-node@v6 with: node-version: 22 registry-url: https://npm.pkg.github.com - name: Publish sample react run: npm publish --access restricted || echo "⚠️ Publish skipped – package already exists" working-directory: packages/samples/react env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Manage version tags for Netlify deployments - name: Update version tag for stable deployments if: github.event.inputs.tag == 'latest' run: | VERSION_TAG="${{env.prefix}}${{github.event.inputs.tag}}" echo "Updating version tag: $VERSION_TAG" git tag -d "$VERSION_TAG" 2>/dev/null || true git push origin ":refs/tags/$VERSION_TAG" 2>/dev/null || true git tag -a "$VERSION_TAG" -m "Update $VERSION_TAG to $(git describe --tags --abbrev=0)" git push origin "$VERSION_TAG" echo "Successfully updated tag $VERSION_TAG"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deleonio/public-ui-kolibri'

If you have feedback or need assistance with the MCP directory API, please join our Discord server