• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

UI5 / cli / 19737207056 / 4 – project
95%
main: 95%

Build:
DEFAULT BRANCH: main
Ran 27 Nov 2025 01:06PM UTC
Files 50
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Nov 2025 01:04PM UTC coverage: 94.989%. Remained the same
project – 19737207056.4

push

github

web-flow
ci: Refactor automated release and publishing workflows with Release Please (#1215)

JIRA: CPOUI5FOUNDATION-1166

## 🔧 Technical Challenges & Solutions

### 1. Circular Peer Dependencies

**Problem:** `@ui5/project` has `peerDependency` on `@ui5/builder`,
while `@ui5/builder` has `devDependency` on `@ui5/project`. The
`node-workspace` plugin detected this cycle:

```
Error: found cycle in dependency graph: @ui5/builder -> @ui5/project -> @ui5/builder
```

**Solution:**
- Configured `node-workspace` plugin with `updatePeerDependencies: true`
- Added automated workflow step that manually updates `@ui5/builder`
peer dependency in `packages/project/package.json`
- Uses `jq` for surgical JSON manipulation to update version range from
`^4.x` to `^5.x`

```yaml
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
```

### 2. Package-Lock Corruption from npm Aliases

**Problem:** The `node-workspace` plugin corrupted `package-lock.json`
by updating npm alias entries in `internal/documentation/package.json`.
This created inconsistent lockfile entries mixing workspace versions
with registry URLs:

```json
"node_modules/@ui5/fs-npm": {
  "name": "@ui5/fs",
  "version": "5.0.0-alpha.0",  // ❌ New workspace version
  "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-4.0.3.tgz",  // ❌ Old registry URL
  "integrity": "sha512-..."
}
```

**Solution:**
Implemented automated lockfile restoration that:
1. Runs `npm install` to regenerate workspace lockfile entries
2. Selectively restores npm alias entries from `origin/main` using `jq`
3. Preserves workspace updates while keeping npm aliases at stable
registry versions

```bash
# Restore npm alias entries from main branch
git show origin/main:package-lock.json | \
  jq -r '.packages | to_entries[] | 
    select(.key | test("node_modules/@ui5/(builder|cli|fs|l... (continued)

1502 of 1621 branches covered (92.66%)

Branch coverage included in aggregate %.

2934 of 3049 relevant lines covered (96.23%)

132.33 hits per line

Source Files on job project - 19737207056.4
  • Tree
  • List 50
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 19737207056
  • 2ff8c59a on github
  • Prev Job for on main (#19730946565.6)
  • Next Job for on main (#19743670994.5)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc