Skip to content

tools: use ubuntu-latest for public lint-js-and-md jobs - #66409

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
inoway46:lint-js-and-md-arm
Nov 7, 2026
Merged

nodejs-github-bot merged 1 commit into
nodejs:mainfrom
inoway46:lint-js-and-md-arm

Conversation

@inoway46

@inoway46 inoway46 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Move lint-js-and-md to ubuntu-latest in public repositories for faster execution and more timeout headroom. Private repositories will continue using ubuntu-slim to avoid increasing runner costs.

Warm cache

Runner Success rate Avg Min P90 P99 Max
ubuntu-slim 128/128 (100%) 3m 05s 2m 32s 3m 45s 6m 19s 7m 07s
ubuntu-latest 128/128 (100%) 1m 45s 1m 13s 2m 04s 2m 11s 2m 13s

Cold cache

Runner Success rate Avg Min P90 P99 Max
ubuntu-slim 128/128 (100%) 6m 59s 5m 24s 9m 02s 12m 55s 13m 10s
ubuntu-latest 128/128 (100%) 2m 56s 2m 00s 3m 26s 3m 43s 3m 51s

The benchmarks used the same source commit and Node.js version, in separate runs.

Benchmarks: slim, ubuntu-latest.

Refs: nodejs/node#64972

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/actions

@nodejs-github-bot nodejs-github-bot added the meta Issues and PRs related to the general management of the project. label Sep 30, 2026
@inoway46 inoway46 changed the title ci: run JavaScript and Markdown linting on ARM tools: run JavaScript and Markdown linting on ARM Sep 30, 2026
@inoway46 inoway46 changed the title tools: run JavaScript and Markdown linting on ARM tools: move lint-js-and-md from ubuntu-slim to ARM Sep 30, 2026
@aduh95

aduh95 commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

As I said before, I don't think this is the right approach, IMO a solution à la #66228, where we reduce the load instead of paying for a more powerful runner, would be much preferable. I suggested in #64972 (comment) to add cache, that would be a preferable outcome

@inoway46

Copy link
Copy Markdown
Contributor Author

Makes sense. I’ll close this. Thanks!

@inoway46 inoway46 closed this Sep 30, 2026
@inoway46
inoway46 deleted the lint-js-and-md-arm branch September 30, 2026 09:58
@inoway46
inoway46 restored the lint-js-and-md-arm branch October 24, 2026 13:41
@inoway46 inoway46 reopened this Oct 24, 2026
@inoway46
inoway46 marked this pull request as ready for review October 24, 2026 13:50
@inoway46

Copy link
Copy Markdown
Contributor Author

As discussed here, timeouts still occur despite caching. I've reopened this PR with updated benchmarks, including a two-CPU ARM approximation to help assess the private-repository cost trade-off.

@MikeMcC399

Copy link
Copy Markdown
Contributor

If costs in the private repo used for security releases are still a concern, then I'd suggest checking if the workflow can check if it's running in a public / private repository and then choose the runner accordingly.

It would however be simpler to use one runner in both instances. According to the assessment in the original post, the incremental cost in the private repo would be around $5 / 1000 runs. I can't judge whether that would be significant or not.

@inoway46

Copy link
Copy Markdown
Contributor Author

@aduh95 @trivikr timeouts are still occurring after caching: 21 of 261 lint-js-and-md attempts (8%) hit the 15-minute limit over the last five days, including six on pushes to main.

Would you be comfortable moving forward with ARM? As Mike mentioned, we could also select the runner conditionally: ARM for public repositories and ubuntu-slim for private repositories, avoiding the estimated extra ~$5 per 1,000 private runs.

@inoway46 inoway46 changed the title tools: move lint-js-and-md from ubuntu-slim to ARM tools: use ARM for lint-js-and-md in public repositories Nov 7, 2026
@inoway46

inoway46 commented Nov 7, 2026

Copy link
Copy Markdown
Contributor Author

On reflection, the potential cost increase for private repositories is still a concern, so I've updated this to use ARM only for public repositories. Private repositories will continue using ubuntu-slim.

@inoway46
inoway46 requested review from MikeMcC399 and aduh95 November 7, 2026 11:44
Comment thread .github/workflows/linters.yml Outdated
lint-js-and-md:
if: github.event.pull_request.draft == false
runs-on: ubuntu-slim
runs-on: ${{ github.event.repository.private && 'ubuntu-slim' || 'ubuntu-26.04-arm' }}

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.

We might as well use ubuntu-latest so that's one fewer thing to keep up-to-date

Suggested change
runs-on: ${{ github.event.repository.private && 'ubuntu-slim' || 'ubuntu-26.04-arm' }}
runs-on: ${{ github.event.repository.private && 'ubuntu-slim' || 'ubuntu-latest' }}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That makes sense. I'm running the same benchmark with ubuntu-latest and will share the results once it finishes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated to ubuntu-latest. I ran the same benchmark: all 128 warm-cache and 128 cold-cache runs passed, averaging 1m45s and 2m56s respectively. Results.

Use ubuntu-latest in public repositories to reduce runtime and
provide more headroom when the ESLint cache cannot be restored.

Keep ubuntu-slim in private repositories to avoid increasing
runner costs.

Assisted-by: Codex
Signed-off-by: inoway46 <inoueyuya416@gmail.com>
@inoway46 inoway46 changed the title tools: use ARM for lint-js-and-md in public repositories tools: use ubuntu-latest for public lint-js-and-md jobs Nov 7, 2026
@inoway46
inoway46 requested a review from aduh95 November 7, 2026 18:04

@MikeMcC399 MikeMcC399 left a comment

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.

LGTM!

@MikeMcC399

Copy link
Copy Markdown
Contributor

You should be able to claim "Fixes: #64972" in the original PR text.

@aduh95 aduh95 added author ready PRs with CI started, the required approvals, and no outstanding review comments. commit-queue PRs queued for automated landing through the Commit Queue. labels Nov 7, 2026
@nodejs-github-bot
nodejs-github-bot merged commit ae353ec into nodejs:main Nov 7, 2026
20 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in ae353ec

@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Nov 7, 2026
@inoway46

inoway46 commented Nov 8, 2026

Copy link
Copy Markdown
Contributor Author

You should be able to claim "Fixes: #64972" in the original PR text.

Thanks for the review! I used Refs: because other jobs were still hitting the 15-minute limit on ubuntu-slim. I've opened #67337 as a follow-up to address those jobs.

inoway46 added a commit to inoway46/node that referenced this pull request Nov 8, 2026
Use ubuntu-latest for CodeQL, documentation, both tarball jobs,
lint-cpp and format-cpp in public repositories after observing
timeouts on ubuntu-slim.

Keep around 30 other jobs on ubuntu-slim, and retain ubuntu-slim
in private repositories to avoid increasing runner costs.

Refs: nodejs#66409
Refs: nodejs#61663
Refs: nodejs#64972
Assisted-by: Codex
Signed-off-by: inoway46 <inoueyuya416@gmail.com>
@MikeMcC399

Copy link
Copy Markdown
Contributor

You should be able to claim "Fixes: #64972" in the original PR text.

Thanks for the review! I used Refs: because other jobs were still hitting the 15-minute limit on ubuntu-slim. I've opened #67337 as a follow-up to address those jobs.

According to the title, the scope of the issue remained the same as "tools: use ubuntu-latest for public lint-js-and-md jobs". Even if other issues were identified in this issue, since the title remained, the issue needed to be closed for clarity.

aduh95 pushed a commit that referenced this pull request Nov 11, 2026
Use ubuntu-latest in public repositories to reduce runtime and
provide more headroom when the ESLint cache cannot be restored.

Keep ubuntu-slim in private repositories to avoid increasing
runner costs.

Assisted-by: Codex
Signed-off-by: inoway46 <inoueyuya416@gmail.com>
PR-URL: #66409
Refs: #64972
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. meta Issues and PRs related to the general management of the project.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ubuntu-slim runners time out after 15 mins while it usually takes <3 mins

4 participants