Skip to content

Publish NPM Package #39

Publish NPM Package

Publish NPM Package #39

Workflow file for this run

name: Publish NPM Package
on:
workflow_dispatch:
inputs:
version_type:
description: "Use PATCH for fixes, use MINOR for new features and use MAJOR for breaking changes"
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major
permissions:
contents: write
packages: write
id-token: write
jobs:
build:
if: ${{ github.actor != 'dependabot'}}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Environment
uses: ./.github/actions/setup
- name: Lint code
run: npm run lint
- name: Format code
run: pnpm run format
- name: Build project
run: npm run build-ui
publish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Environment
uses: ./.github/actions/setup
- name: Build project
run: npm run build-ui
# - name: Install semver
# run: pnpm add -w semver
# - name: Bump version
# working-directory: packages/ui
# id: bump
# run: |
# NEW_VERSION=$(node - << 'EOF'
# const fs = require('fs');
# const semver = require('semver');
# const pkg = require('./package.json');
# pkg.version = semver.inc(pkg.version, process.env.BUMP);
# fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
# console.log(pkg.version);
# EOF
# )
# echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT
# env:
# BUMP: ${{ github.event.inputs.version_type }}
- name: Read new version
id: version
working-directory: packages/ui
run: |
BUMP_VERSION=$(node <<'EOF'
console.log(require('./package.json').version);
EOF
)
echo "BUMP_VERSION=$BUMP_VERSION" >> $GITHUB_OUTPUT
- name: Get new version
working-directory: packages/ui
run: echo "Version is ${{ steps.version.outputs.BUMP_VERSION }}"
# - name: Commit and tag version bump
# run: |
# git config user.name "github-actions[bot]"
# git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
# git add .
# git commit -m "chore: bump @orama/ui v${{ steps.version.outputs.BUMP_VERSION }}" || echo "No changes to commit"
# git tag v${{ steps.version.outputs.BUMP_VERSION }}
# - name: Push changes
# run: |
# git push origin HEAD:main
# git push origin --tags
- name: Configure npm with token
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
- name: Publish to NPM
working-directory: packages/ui
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create GitHub draft release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create v${{ steps.version.outputs.BUMP_VERSION }} \
--draft \
--generate-notes