Incorrect architecture definition for cache key
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- node.js, typescript
調査の方向性
src/cache-restore.ts の 25 行目から始めて、setup-node 用のキャッシュアーキテクチャがどのように選択されるかを追跡します。Issue にある 2 つの macos-latest ワークフローで再現し、その後、x64 と arm64 のビルドがホストアーキテクチャではなく、要求されたアーキテクチャに基づいて別々のキャッシュを使用することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Description:
The architecture used to pull the cache is based on the runner's host architecture and not the architecture key supplied to the action. This problem manifests when running two pipelines that use the same host runner but build for different architectures. In this case the action which is building for an architecture that is different from the host will try to pull the cache for it's host architecture which causes the build to fail. The current solution is to only use caching for the pipeline where the host architecture matches the build architecture which is not ideal.
Action version:
Latest
Platform:
- Ubuntu
- macOS
- Windows
Runner type:
- Hosted
- Self-hosted
Tools version:
all
Repro steps:
Make two actions pipelines with macos-latest and run with a package.json that include native modules:
for x86_64
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.17.0'
cache: 'yarn'
architecture: 'x64'
- name: Install dependencies with Yarn
run: npm_config_arch=x64 yarn install --frozen-lockfile --verbose
for arm64
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.17.0'
cache: 'yarn'
- name: Install dependencies with Yarn
run: yarn install --frozen-lockfile --verbose
Expected behavior:
These pipelines should have separate caches because they are specifying different architectures even though the host architecture is the same.
Actual behavior:
They pull the same cache key because the key is derived from the runner os architecture instead of the specified architecture in the action.
https://github.com/actions/setup-node/blob/89d709d423dc495668cd762a18dd4a070611be3f/src/cache-restore.ts#L25
- 主要言語
- TypeScript
- スター
- 5k
- フォーク
- 1.7k
- 平均マージ
- 2日 11時間
- マージ済み PR(30日)
- 3
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
actions/setup-node のほかの issue
-
feature request
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
actions/setup-node#1531 · コメント 1 件 · リアクション 4 件 ·
-
feature request
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
actions/setup-node#1634 · コメント 1 件 ·
-
actions/setup-node#1628 · コメント 3 件 · 担当者 1 名 ·
-
`npm config get cache` fails with `EBADDEVENGINES` when requiring newer npm versions in `devEngines` オープンfeature request
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
actions/setup-node#1553 · コメント 12 件 · リアクション 2 件 ·
-
feature request
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
actions/setup-node#1428 · コメント 1 件 · リアクション 3 件 ·
actions/setup-node の issue をすべて見る
似ている issue
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
Mend: dependency security vulnerability untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100