Skip to content

Publish new version #677

Publish new version

Publish new version #677

Workflow file for this run

name: Publish new version
on:
push:
tags:
- v*
jobs:
publish-npm:
name: Publish on NPM package registry
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: 🔽 Checkout
uses: actions/checkout@v4
- name: 🔽 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
registry-url: https://registry.npmjs.org/
- name: 🔽 Install dependencies
run: npm ci
- name: 🔽 Clone book submodule
run: git submodule update --init --recursive
- name: 🆚 Update version in Dockerfile
run: npx ts-node ./scripts/update-version-in-config/update-version-in-config.ts
- name: 🏭 Build packages bundles
run: npx ts-node ./scripts/generate-packages/generate-packages.ts
- name: 🔼 Publish @promptbook/anthropic-claude
working-directory: ./packages/anthropic-claude
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/azure-openai
working-directory: ./packages/azure-openai
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/browser
working-directory: ./packages/browser
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/cli
working-directory: ./packages/cli
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/core
working-directory: ./packages/core
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/deepseek
working-directory: ./packages/deepseek
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/documents
working-directory: ./packages/documents
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/editable
working-directory: ./packages/editable
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/javascript
working-directory: ./packages/javascript
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/fake-llm
working-directory: ./packages/fake-llm
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/google
working-directory: ./packages/google
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/legacy-documents
working-directory: ./packages/legacy-documents
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/markdown-utils
working-directory: ./packages/markdown-utils
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/markitdown
working-directory: ./packages/markitdown
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/node
working-directory: ./packages/node
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/openai
working-directory: ./packages/openai
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/pdf
working-directory: ./packages/pdf
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/remote-client
working-directory: ./packages/remote-client
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/remote-server
working-directory: ./packages/remote-server
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/templates
working-directory: ./packages/templates
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/types
working-directory: ./packages/types
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/utils
working-directory: ./packages/utils
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/vercel
working-directory: ./packages/vercel
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/website-crawler
working-directory: ./packages/website-crawler
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish @promptbook/wizzard
working-directory: ./packages/wizzard
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish promptbook
working-directory: ./packages/promptbook
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- name: 🔼 Publish ptbk
working-directory: ./packages/ptbk
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
publish-docker:
name: Publish Docker image to DockerHub
needs: publish-npm
runs-on: ubuntu-latest
steps:
- name: 🔽 Checkout
uses: actions/checkout@v4
- name: 🔑 Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: 🔽 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
registry-url: https://registry.npmjs.org/
- name: 🔽 Install dependencies
run: npm ci
- name: 🔽 Clone book submodule
run: git submodule update --init --recursive
- name: 🆚 Update version in Dockerfile
run: npx ts-node ./scripts/update-version-in-config/update-version-in-config.ts
- name: 🆚 Load current version into the environment
run: echo "VERSION=$(node -p 'require(`./package.json`).version')" >>
$GITHUB_ENV
- name: 👁‍🗨 Log version from previous step
run: echo $VERSION
- name: 👁‍🗨 Log contents of the Dockerfile
run: cat Dockerfile
- name: 🏭🔼 Build and Push Docker Image
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: hejny/promptbook:${{ env.VERSION }}