Skip to content

ci: update ovmlayer and GitHub Action versions#472

Merged
leavesster merged 3 commits intomainfrom
codex/ci-update-ovmlayer-actions
Apr 1, 2026
Merged

ci: update ovmlayer and GitHub Action versions#472
leavesster merged 3 commits intomainfrom
codex/ci-update-ovmlayer-actions

Conversation

@leavesster
Copy link
Copy Markdown
Contributor

Summary

  • vendor the ovmlayer composite action locally and pass the new repository input via a GitHub App token
  • enable ovmlayer runtime setup for the current ovmlayer-next interface
  • bump GitHub-hosted actions to Node 24-compatible versions such as checkout v6, setup-node v6, and upload-artifact v6

Validation

  • git diff --check
  • YAML parse for workflows and composite actions

Copilot AI review requested due to automatic review settings April 1, 2026 03:14
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

Summary by CodeRabbit

Chores

  • 依赖升级
    • GitHub Actions 依赖项已升级至最新稳定版本,包括 checkout、setup-node 和 artifact 上传工具,以增强 CI/CD 流程的可靠性和兼容性。
    • 优化了工作流中的身份验证机制,采用动态生成的 GitHub App 令牌替代静态密钥存储,提升了安全性。

概览

本次更新在多个GitHub Actions工作流中升级了核心操作版本(checkout、setup-node、upload-artifact从v4升至v6),更新了路径过滤操作版本,并重构了两个工作流的令牌获取机制,从静态密钥改为动态GitHub App令牌生成。

变更

相关文件/工作流 变更摘要
操作版本升级
.github/actions/oocana-python/action.yml, .github/workflows/layer.yml, .github/workflows/oocana-python.yml, .github/workflows/pr.yml, .github/workflows/publish.yml
actions/checkout 从 v4 升级至 v6;在 layer.ymlpr.yml 中将 actions/setup-node 从 v4 升级至 v6;将 actions/upload-artifact 从 v4 升级至 v6;在 pr.yml 中将 leavesster/pull-request-path-filter 从 v0.2.2 升级至 v0.2。
令牌获取机制重构
.github/workflows/layer.yml, .github/workflows/oocana-python.yml
移除了 secrets.ACCESS_REPO 的直接使用,添加了 actions/create-github-app-token@v3 步骤以使用GitHub App凭证动态生成令牌;新增 OVMLAYER_REPOSITORYOVMLAYER_USE_RUNTIME_SETUP 环境变量,并将这些变量传递给OVMLayer操作。

预估代码审查工作量

🎯 2 (Simple) | ⏱️ ~12 分钟

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed 标题完全相关并准确总结了主要更改,涵盖了OVMLayer和GitHub Actions版本的更新,符合required格式要求。
Description check ✅ Passed 描述与变更集密切相关,详细说明了OVMLayer配置、GitHub App令牌、运行时设置和GitHub Actions版本升级等关键改动。

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates CI workflows to use newer GitHub-hosted actions (aiming for Node 24 compatibility) and vendors the ovmlayer setup composite action locally, switching ovmlayer downloads to use a GitHub App token and enabling the current ovmlayer-next runtime setup interface.

Changes:

  • Bump GitHub Actions dependencies (e.g., actions/checkout, actions/setup-node, actions/upload-artifact) across workflows and composite actions.
  • Replace the remote ovmlayer composite action reference with a locally vendored .github/actions/ovmlayer action.
  • Generate a GitHub App token at workflow runtime and pass it (plus the ovmlayer repository name) into the local ovmlayer action, enabling runtime setup.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/publish.yml Updates checkout action version used during publish.
.github/workflows/pr.yml Updates action versions (checkout/setup-node/upload-artifact) in PR CI workflow.
.github/workflows/oocana-python.yml Switches ovmlayer setup to local action, adds GitHub App token generation, updates upload-artifact.
.github/workflows/layer.yml Switches ovmlayer setup to local action, adds GitHub App token generation, updates checkout/setup-node/upload-artifact.
.github/actions/ovmlayer/action.yml Adds a locally vendored composite action to download/install ovmlayer and optionally perform runtime setup.
.github/actions/oocana-python/action.yml Updates checkout action version used by the composite action.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

GH_TOKEN: ${{ inputs.token }}
- name: download base rootfs
run: |
curl -L ${{ inputs.rootfs }} -o base_rootfs.tar
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

The action downloads the rootfs with curl -L but without --fail/--show-error, so HTTP errors (e.g. 404) can still produce a file that then fails later in a less clear way. Consider using curl --fail --location --silent --show-error (and ideally --retry) and quoting the URL input to avoid word-splitting/globbing issues.

Suggested change
curl -L ${{ inputs.rootfs }} -o base_rootfs.tar
curl --fail --location --silent --show-error --retry 3 "${{ inputs.rootfs }}" -o base_rootfs.tar

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/ovmlayer/action.yml:
- Around line 15-18: The action's rootfs input currently defaults to a fixed
amd64 URL (rootfs) which mismatches the normalized runner architecture (the arch
normalization code that maps to amd64/arm64), so change the action.yml rootfs
input to derive its default from the normalized arch (use an expression/template
that yields the correct URL for amd64 vs arm64, e.g. a conditional expression
using inputs.arch or the normalized arch variable to pick ".../amd64-rootfs.tar"
vs ".../arm64-rootfs.tar" or remove the hardcoded default and construct the URL
at runtime based on arch), and update callers
(.github/workflows/oocana-python.yml and .github/workflows/layer.yml) to stop
forcing the hardcoded amd64 URL so the correct arch-specific rootfs is used with
the ovmlayer binary.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d1c02d37-9b41-41dd-a3fc-7bf2171dac78

📥 Commits

Reviewing files that changed from the base of the PR and between 9fcc424 and dbd6cab.

📒 Files selected for processing (6)
  • .github/actions/oocana-python/action.yml
  • .github/actions/ovmlayer/action.yml
  • .github/workflows/layer.yml
  • .github/workflows/oocana-python.yml
  • .github/workflows/pr.yml
  • .github/workflows/publish.yml

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/layer.yml (1)

84-92: setup-node 指定 Node 运行时版本。

Line 84 升级了 setup-node action,但未指定 node-version。Line 91-92 的 npm install / npm run test 将使用 ubuntu-latest 预装的 Node 版本,导致 CI 结果依赖于 GitHub 更新环境时的变化,降低可复现性。

仓库内无 .nvmrc.node-version 文件,flow-examples/package.json 亦无 engines 字段,建议在 setup-node 中明确指定经过验证的 Node 版本(如 node-version: '18'node-version: '20')以确保 CI 稳定性。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/layer.yml around lines 84 - 92, 在 CI 工作流中
actions/setup-node@v6 步骤没有指定 node-version,导致后续在 “test flow examples” 步骤用到的 npm
install / npm run test 依赖 runner 预装的 Node
版本并影响可复现性;请在该步骤(actions/setup-node@v6)添加明确的 node-version 字段(例如 '18' 或
'20')以锁定运行时版本,确保 flow-examples 的测试在稳定的 Node 版本下执行(可选同时添加 cache: 'npm' 来加速依赖安装)。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/layer.yml:
- Around line 35-37: The workflow exposes OVMLAYER_REPOSITORY but still
hardcodes the rootfs to base-rootfs@0.4.0/amd64-rootfs.tar and the ovmlayer
action (.github/actions/ovmlayer/action.yml download step) uses gh release
download without --tag, causing binary and rootfs to drift; fix by adding an
explicit OVMLAYER_VERSION input/env (e.g., OVMLAYER_VERSION) and wire it into
both the ovmlayer action download (use --tag or the specific release) and the
rootfs filename so binary and rootfs are pinned together (keep
OVMLAYER_REPOSITORY for repo selection but use OVMLAYER_VERSION for
release/tag), and also update the actions/setup-node@v6 step to include a fixed
node-version parameter to prevent Node version drift.

---

Nitpick comments:
In @.github/workflows/layer.yml:
- Around line 84-92: 在 CI 工作流中 actions/setup-node@v6 步骤没有指定 node-version,导致后续在
“test flow examples” 步骤用到的 npm install / npm run test 依赖 runner 预装的 Node
版本并影响可复现性;请在该步骤(actions/setup-node@v6)添加明确的 node-version 字段(例如 '18' 或
'20')以锁定运行时版本,确保 flow-examples 的测试在稳定的 Node 版本下执行(可选同时添加 cache: 'npm' 来加速依赖安装)。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: eea8ea75-c1a8-4cb1-8c2b-b091aaabdb7d

📥 Commits

Reviewing files that changed from the base of the PR and between dbd6cab and f0190e0.

📒 Files selected for processing (3)
  • .github/workflows/layer.yml
  • .github/workflows/oocana-python.yml
  • .github/workflows/pr.yml
✅ Files skipped from review due to trivial changes (1)
  • .github/workflows/pr.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/oocana-python.yml

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
.github/workflows/layer.yml (1)

84-84: ⚠️ Potential issue | 🟡 Minor

actions/setup-node@v6 缺少 node-version 参数。

当前配置未指定 Node 版本,将使用 runner 预装版本。这可能导致 runner 更新后 Node 版本漂移,造成测试环境不一致。

🔧 建议添加固定的 node-version
       - uses: actions/setup-node@v6
+        with:
+          node-version: '20'
       - name: test flow examples
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/layer.yml at line 84, 在 GitHub Actions 步骤中使用
actions/setup-node@v6 时没有指定 Node 版本(当前行包含 actions/setup-node@v6),请在该步骤中添加一个固定的
node-version 参数(例如 node-version: 18 或从工作流输入/矩阵读取的版本),以确保 runner 不会因预装 Node
版本变化而引起环境漂移;更新对应步骤的配置以明确 node-version 值或引用 workflow 输入/矩阵变量以保持可复现性。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.github/workflows/layer.yml:
- Line 84: 在 GitHub Actions 步骤中使用 actions/setup-node@v6 时没有指定 Node 版本(当前行包含
actions/setup-node@v6),请在该步骤中添加一个固定的 node-version 参数(例如 node-version: 18
或从工作流输入/矩阵读取的版本),以确保 runner 不会因预装 Node 版本变化而引起环境漂移;更新对应步骤的配置以明确 node-version
值或引用 workflow 输入/矩阵变量以保持可复现性。

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 95b811f9-ce9d-443b-a322-6e55f45ab65f

📥 Commits

Reviewing files that changed from the base of the PR and between f0190e0 and f4df596.

📒 Files selected for processing (2)
  • .github/workflows/layer.yml
  • .github/workflows/oocana-python.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/oocana-python.yml

@leavesster leavesster merged commit c1ae145 into main Apr 1, 2026
8 checks passed
@leavesster leavesster deleted the codex/ci-update-ovmlayer-actions branch April 1, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants