[MISSION #80-82] Elite Search & Infrastructure Upgrade (T1 Full Suite) #748
ci.yml
on: pull_request
Backend Lint (Ruff)
8s
Backend Tests (pytest)
58s
Contracts Check (Anchor)
3m 13s
Rust Lint (Clippy)
15s
Frontend Setup Check
3s
Frontend Lint (ESLint)
55s
Frontend Type Check (tsc)
1m 7s
Frontend Tests (Vitest)
1m 47s
Frontend Build (Next.js)
1m 22s
CI Status Summary
2s
Annotations
15 errors and 9 warnings
|
Rust Lint (Clippy)
Process completed with exit code 1.
|
|
Rust Lint (Clippy)
Process completed with exit code 101.
|
|
Backend Tests (pytest)
Process completed with exit code 2.
|
|
src/__tests__/WalletAddress.test.tsx > WalletAddress > shows checkmark and "Copied!" after successful copy:
frontend/src/__tests__/WalletAddress.test.tsx#L78
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/__tests__/WalletAddress.test.tsx:78:3
|
|
src/__tests__/WalletAddress.test.tsx > WalletAddress > copies address to clipboard on click:
frontend/src/__tests__/WalletAddress.test.tsx#L68
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ src/__tests__/WalletAddress.test.tsx:68:3
|
|
src/__tests__/TreasuryPanel.test.tsx > TreasuryPanel > loaded state — burn rate > shows runway days when burn rate > 0:
frontend/src/__tests__/TreasuryPanel.test.tsx#L241
TestingLibraryElementError: Found multiple elements with the text: /Runway:/
Here are the matching elements:
Ignored nodes: comments, script, style
<p
class="text-xs text-[#14F195]"
>
Runway: ~8,000 days
</p>
Ignored nodes: comments, script, style
<p
class="text-xs text-[#14F195]"
>
Runway: ~10,000 days
</p>
Ignored nodes: comments, script, style
<p
class="text-xs text-gray-500"
>
Runway: ∞
</p>
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).
Ignored nodes: comments, script, style
<body>
<div>
<div
class="p-6 space-y-8"
data-testid="treasury-panel"
>
<div
class="flex items-center justify-between"
>
<div>
<h2
class="text-lg font-semibold"
>
Treasury Dashboard
</h2>
<p
class="text-xs text-gray-600 mt-0.5"
>
Last updated
08:23:22 PM
· auto-refreshes every 30s
</p>
</div>
<div
class="flex items-center gap-3"
>
<button
class="rounded-lg border border-white/10 px-3 py-1.5 text-xs text-gray-400 hover:text-white hover:border-white/20 transition-colors"
data-testid="export-csv-btn"
>
Export CSV
</button>
<button
class="rounded-lg border border-white/10 px-3 py-1.5 text-xs text-gray-400 hover:text-white hover:border-white/20 transition-colors"
data-testid="refresh-btn"
>
Refresh
</button>
</div>
</div>
<section
aria-label="Balance summary"
>
<h3
class="text-xs font-medium text-gray-500 uppercase tracking-widest mb-3"
>
Balances
</h3>
<div
class="grid grid-cols-2 sm:grid-cols-3 gap-4"
data-testid="balance-cards"
>
<div
class="rounded-xl border border-white/5 bg-white/[0.03] p-4"
data-testid="fndry-balance"
>
<p
class="text-xs text-gray-500 mb-1"
>
FNDRY Balance
</p>
<p
class="text-xl font-bold tabular-nums truncate text-[#14F195]"
>
800.0k FNDRY
</p>
</div>
<div
class="rounded-xl border border-white/5 bg-white/[0.03] p-4"
data-testid="sol-balance"
>
<p
class="text-xs text-gray-500 mb-1"
>
SOL Balance
</p>
<p
class="text-xl font-bold tabular-nums truncate text-[#9945FF]"
>
125.50 SOL
</p>
</div>
<div
class="rounded-xl border border-white/5 bg-white/[0.03] p-4"
data-testid="total-payouts"
>
<p
class="text-xs text-gray-500 mb-1"
>
Total Payouts
</p>
<p
class="text-xl font-bold tabular-nums truncate text-white"
>
40
</p>
</div>
<div
class="rounded-xl border border-white/5 bg-white/[0.03] p-4"
data-testid="total-fndry-paid"
>
<p
class="text-xs text-gray-500 mb-1"
>
Total FNDRY Paid
</p>
<p
class="text-xl font-bold tabular-nums truncate text-yellow-400"
>
200.0k FNDRY
</p>
</div>
<div
class="rounded-xl border border-white/5 bg-white/[0.03] p-4"
data-testid="total-sol-paid"
>
<p
class="text-xs text-gray-500 mb-1"
>
Total SOL Paid
</p>
<p
class="text-xl font-bold tabular-nums truncate text-white"
>
5.00 SOL
|
|
src/__tests__/TokenomicsPage.test.tsx > TokenomicsPage > shows a truncated treasury wallet address:
frontend/src/__tests__/TokenomicsPage.test.tsx#L107
TestingLibraryElementError: Unable to find an element with the text: /57uMiMHn/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body>
<div>
<div
class="p-6 max-w-5xl mx-auto space-y-6"
>
<div>
<h1
class="text-2xl font-bold text-gray-900 dark:text-white"
>
FNDRY
Tokenomics
</h1>
<p
class="text-sm text-gray-600 dark:text-gray-400 mt-1"
>
Contract:
<code
class="text-xs text-gray-800 dark:text-gray-300"
>
C2TvY8E8B75EF2UP8cTpTp3EDUjTgjWmpaGnT74VBAGS
</code>
</p>
</div>
<div
class="grid grid-cols-2 md:grid-cols-4 gap-4"
>
<div
class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-surface-100 dark:shadow-none"
>
<p
class="text-xs text-gray-600 dark:text-gray-400"
>
Total Supply
</p>
<p
class="text-xl font-bold text-gray-900 dark:text-white mt-1"
>
1.0B
</p>
</div>
<div
class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-surface-100 dark:shadow-none"
>
<p
class="text-xs text-gray-600 dark:text-gray-400"
>
Circulating
</p>
<p
class="text-xl font-bold text-gray-900 dark:text-white mt-1"
>
750.0M
</p>
<p
class="text-xs text-gray-500 mt-1"
>
75.0% of supply
</p>
</div>
<div
class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-surface-100 dark:shadow-none"
>
<p
class="text-xs text-gray-600 dark:text-gray-400"
>
Treasury
</p>
<p
class="text-xl font-bold text-gray-900 dark:text-white mt-1"
>
200.0M
</p>
<p
class="text-xs text-gray-500 mt-1"
>
150.75 SOL
</p>
</div>
<div
class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-surface-100 dark:shadow-none"
>
<p
class="text-xs text-gray-600 dark:text-gray-400"
>
Distributed
</p>
<p
class="text-xl font-bold text-gray-900 dark:text-white mt-1"
>
50.0K
</p>
<p
class="text-xs text-gray-500 mt-1"
>
42 payouts
</p>
</div>
</div>
<div
aria-label="Token distribution"
class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-surface-100 dark:shadow-none"
role="figure"
>
<h3
class="text-sm font-semibold text-gray-900 dark:text-white mb-3"
>
Distribution
</h3>
<div
class="flex h-4 rounded-full overflow-hidden bg-gray-200 dark:bg-surface-200"
>
<div
class="bg-solana-mint h-full"
style="width: 0%;"
title="contributor_rewards: 50.0K"
/>
<div
class="bg-solana-purple h-full"
style="width: 20%;"
title="treasury_reserve: 200.0M"
/>
<div
class="bg-blue-500 h-full"
style="width: 0%;"
title="buybacks: 10.0K"
/>
</div>
<div
class="flex flex-wrap gap-3 mt-3"
>
<span
class="text-xs text-gray-600 dark:text-gray-400 flex items-center gap-1"
>
<span
class="h-2 w-2 rounded-full bg-solana-mint
|
|
src/__tests__/AdminDashboard.test.tsx > AdminLayout auth gate > saves token and shows layout on login:
frontend/src/__tests__/AdminDashboard.test.tsx#L133
TestingLibraryElementError: Unable to find an element by: [data-testid="admin-key-input"]
Ignored nodes: comments, script, style
<body>
<div>
<div
class="min-h-screen bg-[#0f0f1a] flex items-center justify-center p-6"
>
<div
class="w-full max-w-sm rounded-2xl border border-white/10 bg-white/5 p-8 space-y-5"
>
<div
class="text-center"
>
<span
class="text-3xl font-bold bg-gradient-to-r from-[#9945FF] to-[#14F195] bg-clip-text text-transparent"
>
SolFoundry
</span>
<p
class="mt-1 text-xs text-gray-500 uppercase tracking-widest"
>
Admin Dashboard
</p>
</div>
<button
class="w-full flex items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 py-2.5 text-sm text-white hover:bg-white/10 transition-colors"
data-testid="admin-github-login-btn"
>
<svg
class="w-4 h-4"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
clip-rule="evenodd"
d="M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
fill-rule="evenodd"
/>
</svg>
Sign in with GitHub
</button>
<div
class="text-center"
>
<button
class="text-xs text-gray-600 hover:text-gray-400 transition-colors"
data-testid="admin-use-apikey-link"
>
Use API key instead
</button>
</div>
</div>
</div>
</div>
</body>
❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19
❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38
❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17
❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19
❯ src/__tests__/AdminDashboard.test.tsx:133:29
|
|
src/__tests__/AdminDashboard.test.tsx > AdminLayout auth gate > shows login form after sign out:
frontend/src/__tests__/AdminDashboard.test.tsx#L120
TestingLibraryElementError: Unable to find an element by: [data-testid="admin-login-form"]
Ignored nodes: comments, script, style
<body>
<div>
<div
class="min-h-screen bg-[#0f0f1a] flex items-center justify-center p-6"
>
<div
class="w-full max-w-sm rounded-2xl border border-white/10 bg-white/5 p-8 space-y-5"
>
<div
class="text-center"
>
<span
class="text-3xl font-bold bg-gradient-to-r from-[#9945FF] to-[#14F195] bg-clip-text text-transparent"
>
SolFoundry
</span>
<p
class="mt-1 text-xs text-gray-500 uppercase tracking-widest"
>
Admin Dashboard
</p>
</div>
<button
class="w-full flex items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 py-2.5 text-sm text-white hover:bg-white/10 transition-colors"
data-testid="admin-github-login-btn"
>
<svg
class="w-4 h-4"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
clip-rule="evenodd"
d="M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
fill-rule="evenodd"
/>
</svg>
Sign in with GitHub
</button>
<div
class="text-center"
>
<button
class="text-xs text-gray-600 hover:text-gray-400 transition-colors"
data-testid="admin-use-apikey-link"
>
Use API key instead
</button>
</div>
</div>
</div>
</div>
</body>
Ignored nodes: comments, script, style
<html>
<head />
<body>
<div>
<div
class="min-h-screen bg-[#0f0f1a] flex items-center justify-center p-6"
>
<div
class="w-full max-w-sm rounded-2xl border border-white/10 bg-white/5 p-8 space-y-5"
>
<div
class="text-center"
>
<span
class="text-3xl font-bold bg-gradient-to-r from-[#9945FF] to-[#14F195] bg-clip-text text-transparent"
>
SolFoundry
</span>
<p
class="mt-1 text-xs text-gray-500 uppercase tracking-widest"
>
Admin Dashboard
</p>
</div>
<button
class="w-full flex items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 py-2.5 text-sm text-white hover:bg-white/10 transition-colors"
data-testid="admin-github-login-btn"
>
<svg
class="w-4 h-4"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
clip-rule="evenodd"
d="M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309
|
|
src/__tests__/AdminDashboard.test.tsx > AdminLayout auth gate > shows login form when no token is stored:
frontend/src/__tests__/AdminDashboard.test.tsx#L91
TestingLibraryElementError: Unable to find an element by: [data-testid="admin-login-form"]
Ignored nodes: comments, script, style
<body>
<div>
<div
class="min-h-screen bg-[#0f0f1a] flex items-center justify-center p-6"
>
<div
class="w-full max-w-sm rounded-2xl border border-white/10 bg-white/5 p-8 space-y-5"
>
<div
class="text-center"
>
<span
class="text-3xl font-bold bg-gradient-to-r from-[#9945FF] to-[#14F195] bg-clip-text text-transparent"
>
SolFoundry
</span>
<p
class="mt-1 text-xs text-gray-500 uppercase tracking-widest"
>
Admin Dashboard
</p>
</div>
<button
class="w-full flex items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 py-2.5 text-sm text-white hover:bg-white/10 transition-colors"
data-testid="admin-github-login-btn"
>
<svg
class="w-4 h-4"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
clip-rule="evenodd"
d="M10 0C4.477 0 0 4.484 0 10.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0110 4.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.203 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0020 10.017C20 4.484 15.522 0 10 0z"
fill-rule="evenodd"
/>
</svg>
Sign in with GitHub
</button>
<div
class="text-center"
>
<button
class="text-xs text-gray-600 hover:text-gray-400 transition-colors"
data-testid="admin-use-apikey-link"
>
Use API key instead
</button>
</div>
</div>
</div>
</div>
</body>
❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19
❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38
❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17
❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19
❯ src/__tests__/AdminDashboard.test.tsx:91:19
|
|
Unhandled error:
frontend/src/contexts/ToastContext.tsx#L50
Error: useToast must be used within a ToastProvider
❯ useToast src/contexts/ToastContext.tsx:50:11
❯ CreatorBountyCard src/components/bounties/CreatorBountyCard.tsx:26:19
❯ renderWithHooks node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork node_modules/react-dom/cjs/react-dom.development.js:21626:16
❯ beginWork$1 node_modules/react-dom/cjs/react-dom.development.js:27465:14
❯ performUnitOfWork node_modules/react-dom/cjs/react-dom.development.js:26599:12
❯ workLoopSync node_modules/react-dom/cjs/react-dom.development.js:26505:5
❯ renderRootSync node_modules/react-dom/cjs/react-dom.development.js:26473:7
❯ recoverFromConcurrentError node_modules/react-dom/cjs/react-dom.development.js:25889:20
This error originated in "src/components/CreatorDashboard.test.tsx" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
The latest test that might've caused the error is "filters bounties by tab". It might mean one of the following:
- The error was thrown, while Vitest was running this test.
- If the error occurred after the test had been completed, this was the last documented test before it was thrown.
|
|
Unhandled error:
frontend/src/contexts/ToastContext.tsx#L50
Error: useToast must be used within a ToastProvider
❯ useToast src/contexts/ToastContext.tsx:50:11
❯ CreatorBountyCard src/components/bounties/CreatorBountyCard.tsx:26:19
❯ renderWithHooks node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork node_modules/react-dom/cjs/react-dom.development.js:21626:16
❯ beginWork$1 node_modules/react-dom/cjs/react-dom.development.js:27465:14
❯ performUnitOfWork node_modules/react-dom/cjs/react-dom.development.js:26599:12
❯ workLoopSync node_modules/react-dom/cjs/react-dom.development.js:26505:5
❯ renderRootSync node_modules/react-dom/cjs/react-dom.development.js:26473:7
❯ recoverFromConcurrentError node_modules/react-dom/cjs/react-dom.development.js:25889:20
This error originated in "src/components/CreatorDashboard.test.tsx" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
The latest test that might've caused the error is "renders notification badges". It might mean one of the following:
- The error was thrown, while Vitest was running this test.
- If the error occurred after the test had been completed, this was the last documented test before it was thrown.
|
|
Unhandled error:
frontend/src/contexts/ToastContext.tsx#L50
Error: useToast must be used within a ToastProvider
❯ useToast src/contexts/ToastContext.tsx:50:11
❯ CreatorBountyCard src/components/bounties/CreatorBountyCard.tsx:26:19
❯ renderWithHooks node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork node_modules/react-dom/cjs/react-dom.development.js:21626:16
❯ beginWork$1 node_modules/react-dom/cjs/react-dom.development.js:27465:14
❯ performUnitOfWork node_modules/react-dom/cjs/react-dom.development.js:26599:12
❯ workLoopSync node_modules/react-dom/cjs/react-dom.development.js:26505:5
❯ renderRootSync node_modules/react-dom/cjs/react-dom.development.js:26473:7
❯ recoverFromConcurrentError node_modules/react-dom/cjs/react-dom.development.js:25889:20
This error originated in "src/components/CreatorDashboard.test.tsx" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
The latest test that might've caused the error is "renders dashboard title and stats after loading". It might mean one of the following:
- The error was thrown, while Vitest was running this test.
- If the error occurred after the test had been completed, this was the last documented test before it was thrown.
|
|
Contracts Check (Anchor)
Process completed with exit code 1.
|
|
CI Status Summary
Process completed with exit code 1.
|
|
Frontend Setup Check
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend Lint (Ruff)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Rust Lint (Clippy)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend Tests (pytest)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend Lint (ESLint)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend Type Check (tsc)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend Build (Next.js)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend Tests (Vitest)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Contracts Check (Anchor)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|