build(deps-dev): Bump sinon from 21.0.0 to 21.0.1 (#1275) #53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |