Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
29 changes: 23 additions & 6 deletions .github/workflows/contracts-ecdsa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Solidity ECDSA

on:
pull_request:
branches:
- main
# We intend to use `workflow dispatch` in two different situations/paths
# 1. If a workflow will be manually dispatched from branch named
# `dapp-development`, workflow will deploy the contracts on the selected
Expand Down Expand Up @@ -35,14 +33,24 @@ jobs:
contracts-detect-changes:
runs-on: ubuntu-latest
outputs:
path-filter: ${{ steps.set-output.outputs.path-filter }}
path-filter: ${{ steps.filter.outputs.path-filter }}
steps:
- name: Set path-filter output
id: set-output
run: echo "path-filter=true" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3
if: github.event_name == 'pull_request'
- uses: dorny/paths-filter@v2

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Tracked workflow files matching dorny/paths-filter:"
for f in $(git ls-files '.github/workflows/*.yml' '.github/workflows/*.yaml'); do
  if grep -q 'dorny/paths-filter' "$f"; then
    echo "### $f"
    grep -n 'dorny/paths-filter' "$f"
  fi
done

echo
echo "Relevant dorny/paths-filter blocks:"
for f in .github/workflows/contracts-ecdsa.yml .github/workflows/contracts-random-beacon.yml; do
  if [ -f "$f" ]; then
    echo "### $f"
    nl -ba "$f" | sed -n '34,46p'
  else
    echo "missing $f"
  fi
done

echo
echo "Check whether refs exist locally or via public repo metadata:"
if command -v gh >/dev/null 2>&1; then
  for ref in dorny/paths-filter:v2 dorny/paths-filter:v3; do
    echo "ref $ref"
    gh api repos/dorny/paths-filter/git/refs/tags/${ref#*:} --jq '{ref, object_type: .object.type, object_sha: .object.sha}' || true
    sha=${ref#*:}
    if [ "$sha" = "$ref" ]; then
      # not a tag with tag prefix ok
      true
    fi
  done
else
  echo "gh command not available"
fi

echo
echo "Public release/tag availability from GitHub (lightweight probe):"
curl -fsSL -o /tmp/paths-tags.json "https://api.github.com/repos/dorny/paths-filter/tags" && jq '.[0:10] | map({name, commit_sha: .commit.sha})' /tmp/paths-tags.json || true

Repository: threshold-network/keep-core

Length of output: 798


🌐 Web query:

dorny paths-filter GitHub release v2 latest

💡 Result:

The latest version of the dorny/paths-filter GitHub action as of July 27, 2026, is v4.0.2 [1]. The project has evolved significantly beyond version 2 [2][3]. Version 4 represents a major update that includes support for Node 24 and contains breaking changes compared to previous versions [4][5][6]. Users are encouraged to use the latest release (v4.x) for current projects [4]. Version 2 is now considered a legacy major version [2][3].

Citations:


🌐 Web query:

dorny/paths-filter v3 v2 Node version action.yml

💡 Result:

The dorny/paths-filter GitHub Action uses different Node.js runtimes depending on the major version selected in the action.yml configuration [1][2]. - Version v4.x (current): Uses node24 [3][4][2]. This transition was implemented in v4.0.0 to support the GitHub Actions migration to Node 24 [3][4]. - Version v3.x: Uses node20 [5][6][2]. This was the standard for v3.x releases [5][6]. - Version v2.x: Uses node16 [5]. This is the legacy runtime for v2.x [5]. You can verify the specific runtime used by an installed version by inspecting the runs section in the action.yml file within the respective release tag or branch [2]. The update from node20 to node24 in v4.0.0 was a non-functional change intended to maintain compatibility with GitHub's runner environment deprecation schedule [4].

Citations:


🌐 Web query:

GitHub Actions JavaScript v1/v2 node16 deprecation date

💡 Result:

Node.js 16 reached its end of life within GitHub Actions on November 12, 2024 [1]. Following the end of Node.js 16 support, GitHub Actions removed Node.js 16 from the runner environment, meaning actions configured to run on Node 16 (often associated with older v1 or v2 versions of GitHub Actions) ceased to function correctly on that date [1]. To resolve issues related to this deprecation, users must update their workflow definitions to use newer versions of actions (typically v3 or v4+) that are configured to run on newer Node.js runtimes (such as Node 20 or Node 24) [2][1][3]. While GitHub previously provided an environment variable (ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true) as a temporary opt-out to allow continued use of Node 16 during the transition period, that option is no longer valid following the November 2024 cutoff [1][4]. For context, GitHub has since moved on to deprecating Node.js 20, which is scheduled to reach its end of life on GitHub Actions runners on June 16, 2026, with a transition to Node 24 [2].

Citations:


🌐 Web query:

dorny paths-filter Node 20 Node 24 support v4 action.yml master

💡 Result:

As of July 27, 2026, the dorny/paths-filter action supports Node 24, which was introduced in version 4.0.0 [1]. The action was updated to use node24 in its action.yml file to maintain compatibility with GitHub Actions runners [2][3]. This change was part of a major version bump to v4.0.0 on March 12, 2026, which replaced the previous node20 runtime [1][2][3]. Users are encouraged to use version 4.0.0 or higher to avoid deprecation warnings and ensure compatibility with GitHub's updated environment [4][5]. You can verify this in the repository's action.yml file, which specifies using: 'node24' [3].

Citations:


Update dorny/paths-filter to a current Node20+/Node24 release.

dorny/paths-filter@v2 is a legacy node16 action; v3 uses Node20 and v4 is Node24. Pin current releases immutably instead of moving tags.

  • .github/workflows/contracts-ecdsa.yml
  • .github/workflows/contracts-random-beacon.yml
🧰 Tools
🪛 actionlint (1.7.12)

[error] 40-40: the runner of "dorny/paths-filter@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

📍 Affects 2 files
  • .github/workflows/contracts-ecdsa.yml#L40-L40 (this comment)
  • .github/workflows/contracts-random-beacon.yml#L40-L40
🤖 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/contracts-ecdsa.yml at line 40, Update the
dorny/paths-filter action in .github/workflows/contracts-ecdsa.yml at line 40
and .github/workflows/contracts-random-beacon.yml at line 40 from the legacy v2
Node16 release to a current Node20+/Node24 release, and pin each action
reference immutably to its commit SHA rather than using a mutable version tag.

Source: Linters/SAST tools

if: github.event_name == 'pull_request'
id: filter
with:
filters: |
path-filter:
- './solidity/ecdsa/**'
- './.github/workflows/contracts-ecdsa.yml'

contracts-lint:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand All @@ -69,6 +77,9 @@ jobs:

contracts-slither:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down Expand Up @@ -111,6 +122,9 @@ jobs:

contracts-build-and-test:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down Expand Up @@ -138,6 +152,9 @@ jobs:

contracts-deployment-dry-run:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down
29 changes: 23 additions & 6 deletions .github/workflows/contracts-random-beacon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Solidity Random Beacon

on:
pull_request:
branches:
- main
# We intend to use `workflow dispatch` in two different situations/paths:
# 1. If a workflow will be manually dispatched from branch named
# `dapp-development`, workflow will deploy the contracts on the selected
Expand Down Expand Up @@ -35,14 +33,24 @@ jobs:
contracts-detect-changes:
runs-on: ubuntu-latest
outputs:
path-filter: ${{ steps.set-output.outputs.path-filter }}
path-filter: ${{ steps.filter.outputs.path-filter }}
steps:
- name: Set path-filter output
id: set-output
run: echo "path-filter=true" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3
if: github.event_name == 'pull_request'
- uses: dorny/paths-filter@v2
if: github.event_name == 'pull_request'
id: filter
with:
filters: |
path-filter:
- './solidity/random-beacon/**'
- './.github/workflows/contracts-random-beacon.yml'

contracts-lint:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand All @@ -69,6 +77,9 @@ jobs:

contracts-slither:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down Expand Up @@ -109,6 +120,9 @@ jobs:

contracts-build-and-test:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down Expand Up @@ -136,6 +150,9 @@ jobs:

contracts-deployment-dry-run:
needs: contracts-detect-changes
if: |
github.event_name != 'pull_request'
|| needs.contracts-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
defaults:
run:
Expand Down
Loading