From e67c08c6d8fd856704824c79b7086720b634cf6c Mon Sep 17 00:00:00 2001 From: Vadym Vakhovskiy Date: Thu, 25 Jun 2026 14:01:49 +0200 Subject: [PATCH 1/2] fix: make unit test dependency setup deterministic --- .github/workflows/UnitTests.yml | 5 ++++- package.json | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/UnitTests.yml b/.github/workflows/UnitTests.yml index 90654318d..8bea28ed1 100644 --- a/.github/workflows/UnitTests.yml +++ b/.github/workflows/UnitTests.yml @@ -54,7 +54,10 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - name: "Installing dependencies" - run: pnpm install + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Linting code" run: pnpm -r --filter=${{ steps.variables.outputs.arg }} run lint - name: "Running unit tests" diff --git a/package.json b/package.json index dc008b4b4..4527f617c 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "test:e2e:android": "pnpm -r run test:e2e:android", "test:e2e:ios": "pnpm -r run test:e2e:ios", "build": "pnpm -r run build", + "build:internal-utils": "pnpm --filter @mendix/piw-utils-internal --filter @mendix/piw-native-utils-internal run build", "release": "pnpm -r run release", "release:marketplace": "pnpm -r run release:marketplace", "release-github:widget": "node ./scripts/release/createWidgetRelease.js", From 00cd156ea3bd64ad2b893bfc4743ab24f50ca31f Mon Sep 17 00:00:00 2001 From: Vadym Vakhovskiy Date: Thu, 25 Jun 2026 15:16:12 +0200 Subject: [PATCH 2/2] fix: update dependency installation to avoid workspace lifecycle builds --- .github/workflows/Build.yml | 5 ++++- .github/workflows/BuildMpk.yml | 5 ++++- .github/workflows/MarketplaceRelease.yml | 5 ++++- .github/workflows/NativePipeline.yml | 5 ++++- .github/workflows/Release.yml | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index c6a128e50..ae890b8a3 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -55,7 +55,10 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - name: "Installing dependencies" - run: pnpm install + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Running build for development" run: pnpm -r --filter='!native-widgets' --filter=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '...[origin/main]'; else echo '**'; fi) run build env: diff --git a/.github/workflows/BuildMpk.yml b/.github/workflows/BuildMpk.yml index 9c68385f7..2447295a0 100644 --- a/.github/workflows/BuildMpk.yml +++ b/.github/workflows/BuildMpk.yml @@ -38,7 +38,10 @@ jobs: - name: "Setup pnpm" uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5 - name: "Installing dependencies" - run: pnpm install + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Bumping version" id: bump_version run: | diff --git a/.github/workflows/MarketplaceRelease.yml b/.github/workflows/MarketplaceRelease.yml index d9223a1ca..ed3360bb1 100644 --- a/.github/workflows/MarketplaceRelease.yml +++ b/.github/workflows/MarketplaceRelease.yml @@ -32,7 +32,10 @@ jobs: - name: "Setup pnpm" uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5 - name: "Installing dependencies" - run: pnpm install + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Building native widgets and js actions" run: pnpm -r run release - name: "Updating Native Mobile Resources project" diff --git a/.github/workflows/NativePipeline.yml b/.github/workflows/NativePipeline.yml index b7fc6e929..3aa94c40a 100644 --- a/.github/workflows/NativePipeline.yml +++ b/.github/workflows/NativePipeline.yml @@ -212,7 +212,10 @@ jobs: - name: "Setup pnpm" uses: pnpm/action-setup@a8198c4bff370c8506180b035930dea56dbd5288 # v5 - name: "Install dependencies" - run: pnpm install --frozen-lockfile + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Force rebuild resources" run: | # Build JS actions if needed (when js_actions_changed is true OR when workspace explicitly includes them) diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index 3d22b7e05..cd32f3bd5 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -60,7 +60,10 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - name: "Installing dependencies" - run: pnpm install + # Avoid running workspace lifecycle builds during install; the internal utilities are built once below. + run: pnpm install --frozen-lockfile --ignore-scripts + - name: "Building internal utilities" + run: pnpm run build:internal-utils - name: "Running release for production" run: pnpm -r --filter=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '...[origin/main]'; else echo '**'; fi) run release env: