Skip to content

Release monorepo packages #1

Release monorepo packages

Release monorepo packages #1

Workflow file for this run

name: Release monorepo packages
on:
workflow_dispatch:
branches:
- main
env:
CPU_CORES: 2
HUSKY: 0
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24.10.0
registry-url: https://registry.npmjs.org
- name: Install monorepo dependencies
run: npm ci --engine-strict=false
- name: Build monorepo
run: npm run build
- name: Check TypeScript types
run: npm run typescript:check-types
- name: Execute tests in monorepo
run: npm run test
- name: Version bump & GitHub release
run: |
git config user.email "vladimir.gorej@gmail.com"
git config user.name "Vladimir Gorej"
npx lerna version --conventional-commits --no-private --yes --force-publish
env:
GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish monorepo npm packages
run: npx lerna publish from-package --no-private --yes
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
sync-lockfile:
name: Sync lockfile
runs-on: ubuntu-latest
needs: release
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.14.0
registry-url: https://registry.npmjs.org
- name: Sync lockfile
run: |
git config user.email "vladimir.gorej@gmail.com"
git config user.name "Vladimir Gorej"
git pull --rebase origin main
npm install
git add package-lock.json
git diff --cached --quiet || git commit -m "chore: sync lockfile"
git push origin main