Skip to content

build(deps-dev): Bump sinon from 21.0.0 to 21.0.1 (#1275) #53

build(deps-dev): Bump sinon from 21.0.0 to 21.0.1 (#1275)

build(deps-dev): Bump sinon from 21.0.0 to 21.0.1 (#1275) #53

name: Release Please
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
id-token: write # Required for trusted publishing via OIDC (https://docs.npmjs.com/trusted-publishers)
jobs:
release-please:
runs-on: ubuntu-24.04
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
steps:
- uses: actions/checkout@v6
- name: Node.js LTS
uses: actions/setup-node@v6
with:
node-version: 24.x
- name: Run Release Please to update PRs and create releases
uses: googleapis/release-please-action@v4
id: release
with:
token: "${{ secrets.GITHUB_TOKEN }}"
- name: "Fix peerDependency and lockfile in Release PR"
if: ${{ steps.release.outputs.pr }}
run: |
set -ex
gh pr checkout ${{ fromJson(steps.release.outputs.pr).number }}
# Update peer dependency: Release Please doesn't handle circular peerDependencies
# @ui5/project has peerDependency on @ui5/builder, and @ui5/builder has devDependency on @ui5/project
# The node-workspace plugin can't resolve this cycle, so we update it manually
# Extract builder version and update project peer dependency
BUILDER_VERSION=$(jq -r '.version' packages/builder/package.json)
jq --tab --arg new_version "^$BUILDER_VERSION" '.peerDependencies."@ui5/builder" = $new_version' packages/project/package.json > tmp.$$.json && mv tmp.$$.json packages/project/package.json
# Regenerate package-lock.json to sync with updated workspace packages
npm install
# Commit the change back to the PR branch
# Amend the Release Please commit to include our fixes
# This keeps the PR clean with a single commit
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add packages/project/package.json package-lock.json
git commit --amend --no-edit
git push --force-with-lease
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-packages:
runs-on: ubuntu-24.04
needs: release-please
if: needs.release-please.outputs.releases_created == 'true'
strategy:
# Sequential publishing ensures dependencies exist on NPM before dependents are published
# Order: logger → fs → builder → server → project (CLI handled separately for shrinkwrap generation)
max-parallel: 1
matrix:
package: [logger, fs, builder, server, project]
steps:
- uses: actions/checkout@v6
- name: Node.js LTS
uses: actions/setup-node@v6
with:
node-version: 24.x
- name: Install dependencies
run: npm ci
- name: Publish ${{ matrix.package }} package
working-directory: packages/${{ matrix.package }}
run: |
echo "🚀 Publishing @ui5/${{ matrix.package }}"
npm publish --access public --tag next
publish-cli:
runs-on: ubuntu-24.04
needs: [release-please, publish-packages]
if: needs.release-please.outputs.releases_created == 'true'
steps:
- uses: actions/checkout@v6
- name: Node.js LTS
uses: actions/setup-node@v6
with:
node-version: 24.x
- name: Install dependencies
run: npm ci
- name: Generate npm-shrinkwrap.json
working-directory: packages/cli
run: |
set -e
node ../../internal/shrinkwrap-extractor/cli.js ../../
- name: Publish @ui5/cli package
working-directory: packages/cli
run: |
echo "🚀 Publishing @ui5/cli"
npm publish --access public --tag next