Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions .github/workflows/frontend-coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,10 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install latest pnpm
working-directory: ${{env.working-directory}}
run: |
npm install -g pnpm &&
pnpm --version &&
pnpm list -g --depth 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: Install dependencies
working-directory: ${{env.working-directory}}
run: pnpm i --frozen-lockfile
Expand Down
20 changes: 8 additions & 12 deletions .github/workflows/frontend-linters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,10 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install latest pnpm
working-directory: ${{env.working-directory}}
run: |
npm install -g pnpm &&
pnpm --version &&
pnpm list -g --depth 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: Install prettier
working-directory: ${{env.working-directory}}
run: pnpm add --save-dev prettier
Expand Down Expand Up @@ -74,12 +72,10 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install latest pnpm
working-directory: ${{env.working-directory}}
run: |
npm install -g pnpm &&
pnpm --version &&
pnpm list -g --depth 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install prettier
working-directory: ${{env.working-directory}}
run: pnpm add --save-dev prettier
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/frontend-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,10 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install latest pnpm
working-directory: ${{env.working-directory}}
run: |
npm install -g pnpm &&
pnpm --version &&
pnpm list -g --depth 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: Install dependencies
working-directory: ${{env.working-directory}}
run: pnpm i --frozen-lockfile
Expand Down
34 changes: 24 additions & 10 deletions .github/workflows/functional-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ jobs:
restore-keys: |
${{ runner.os }}-pnpm-

- name: Install pnpm globally
run: npm install -g pnpm
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Install community frontend dependencies
working-directory: ${{ env.frontend-directory }}
Expand Down Expand Up @@ -94,8 +96,10 @@ jobs:
restore-keys: |
${{ runner.os }}-pnpm-

- name: Install pnpm globally
run: npm install -g pnpm
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Build enterprise frontend
working-directory: ${{ env.enterprise-frontend-directory }}
Expand Down Expand Up @@ -238,16 +242,21 @@ jobs:
restore-keys: |
${{ runner.os }}-pnpm-

- name: Install pnpm globally
run: npm install -g pnpm
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install community frontend dependencies (if not cached/part of build artifact)
working-directory: ${{ env.frontend-directory }}
run: pnpm i --frozen-lockfile

- name: Get installed Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(pnpm exec playwright --version | awk -F ' ' '{print $2}')" >> $GITHUB_ENV
working-directory: ${{ env.frontend-directory }}
run: |
PLAYWRIGHT_VERSION=$(node -p "require('@playwright/test/package.json').version")
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> "$GITHUB_ENV"

- name: Cache playwright binaries
uses: actions/cache@v4
Expand Down Expand Up @@ -414,16 +423,21 @@ jobs:
working-directory: ${{ env.enterprise-frontend-directory }}
run: make pre-build

- name: Install pnpm globally
run: npm install -g pnpm
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install enterprise frontend dependencies
working-directory: ${{ env.enterprise-frontend-build-directory }}
run: pnpm i --frozen-lockfile

- name: Get installed Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(pnpm exec playwright --version | awk -F ' ' '{print $2}')" >> $GITHUB_ENV
working-directory: ${{ env.enterprise-frontend-build-directory }}
run: |
PLAYWRIGHT_VERSION=$(node -p "require('@playwright/test/package.json').version")
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> "$GITHUB_ENV"

- name: Cache playwright binaries
uses: actions/cache@v4
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/rpm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,15 @@ jobs:
ncurses-devel \
gdbm-devel

- name: Install Node.js and pnpm
- name: Install Node.js
run: |
curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -
dnf install -y nodejs
npm install -g pnpm

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Does pnpm/action-setup@v4 work in GitHub Actions container jobs where Node.js is not installed via actions/setup-node?

💡 Result:

No, pnpm/action-setup@v4 does not work in GitHub Actions container jobs where Node.js is not installed via actions/setup-node (or otherwise pre-installed in the container image). The action runs as a Node.js script and installs pnpm by spawning the Node.js process (process.execPath) to execute its bundled pnpm.cjs self-installer script, which performs node pnpm.cjs install pnpm@${version} --no-lockfile in a temporary directory to bootstrap pnpm[1][2]. Without Node.js available on the PATH or in the environment, this spawn will fail with an error like ENOENT (no such file or directory). Official documentation explicitly states: "This action does not setup Node.js for you, use actions/setup-node yourself."[3] All examples pair it with setup-node or assume hosted runners with Node.js[4]. In container jobs using minimal images (e.g., node:slim without full Node tools or no Node), it fails unless Node.js is present[5]. However, with standalone: true, it installs @pnpm/exe (a self-contained executable bundling its own Node.js), enabling pnpm use without system Node.js afterward, but the action's initial execution still requires Node.js[6][7].

Citations:


Use actions/setup-node instead of dnf install nodejs for a standard, tested setup with pnpm/action-setup@v4.

pnpm/action-setup@v4 requires Node.js on the PATH to execute its installer. While dnf install nodejs should place Node.js on the PATH, this approach is non-standard and undocumented for this action. Official pnpm/action-setup documentation and examples consistently pair it with actions/setup-node for container jobs. The dnf-based setup risks CI failure and is not verified by the pnpm team. Replace lines 57-60 with actions/setup-node@v4 (or later) to follow the tested, standard pattern.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/rpm-build.yml around lines 57 - 65, Replace the
non-standard Node installation block that runs "dnf install -y nodejs" and the
subsequent "pnpm/action-setup@v4" usage with the supported setup pairing: call
"actions/setup-node" (e.g., actions/setup-node@v4) to install Node on PATH
before invoking "pnpm/action-setup@v4"; update the workflow steps so the Node
setup step runs prior to the pnpm action and remove the dnf-based installation
to ensure compatibility with pnpm/action-setup@v4.

Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Install Poetry
run: |
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/startup-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,13 @@ jobs:
- name: Install backend requirements
working-directory: ${{ env.backend-directory }}
run: poetry install
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: Install frontend dependencies
working-directory: ${{ env.frontend-directory }}
run: |
npm install -g pnpm
pnpm i --frozen-lockfile
run: pnpm i --frozen-lockfile
- name: Install Playwright Browsers
working-directory: ${{ env.frontend-directory }}
run: pnpm exec playwright install
Expand Down Expand Up @@ -131,11 +133,13 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install frontend dependencies
working-directory: ${{ env.frontend-directory }}
run: |
npm install -g pnpm
pnpm i --frozen-lockfile
run: pnpm i --frozen-lockfile
- name: Install Playwright Browsers
working-directory: ${{ env.frontend-directory }}
run: pnpm exec playwright install
Expand Down
Loading