Skip to content

ci: switch PR workflows back to 1ES self-hosted runners with JobId#311975

Merged
Yoyokrazy merged 3 commits intomainfrom
agents/runner-pool-reconfiguration-1es-8932bbef
Apr 22, 2026
Merged

ci: switch PR workflows back to 1ES self-hosted runners with JobId#311975
Yoyokrazy merged 3 commits intomainfrom
agents/runner-pool-reconfiguration-1es-8932bbef

Conversation

@Yoyokrazy
Copy link
Copy Markdown
Collaborator

Summary

Reverts the GitHub-hosted runner switch (#305298) for ubuntu/windows jobs in the PR workflows and adds a unique JobId label per job. Per the recent IcM, bare 1ES.Pool=... labels without a JobId lead to 1ES runners cancelling intermittently — adding a per-run+attempt JobId scopes the agent to a specific GitHub Actions run and prevents the cancellations.

Format applied to every runs-on:

runs-on: [ self-hosted, 1ES.Pool=<pool>, "JobId=<jobname>-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]

Pools:

  • 1es-vscode-oss-ubuntu-22.04-x64
  • 1es-vscode-oss-windows-2022-x64
Session Context

Key decisions from the development session:

  • Don't just revert switch to gh hosted runners #305298 — the historical runs-on: [ self-hosted, 1ES.Pool=... ] form (without JobId) is exactly what caused 1ES runs to cancel intermittently, which the recent IcM identified as the root cause. We need the JobId mitigation alongside the pool revert.
  • JobId format comes directly from the IcM mitigation: JobId=<name>-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}. The <name> portion is the job key (e.g. compile, linux-test, copilot-windows-tests) so each job in a workflow gets a distinct JobId.
  • macOS jobs left on GitHub-hosted runners (pr-darwin-test.yml and the macOS job in pr-node-modules.yml). No 1ES macOS pool was ever used in this repo's history.
  • pr-linux-test.yml reverted from ubuntu-24.04 back to the 22.04 1ES pool. That file had been bumped to 24.04 in ci: bump github runner to ubuntu-24.04 to address fontconfig crash  #308495 / ci: fix intermittent fontconfig SIGSEGV on Linux CI #309451 to fix a fontconfig SIGSEGV on the GitHub-hosted runner. The 1ES pool image differs, so the crash isn't expected to recur — but worth watching.
  • Pool name is 1es-vscode-oss-ubuntu-22.04-x64 (not 1es-vscode-ubuntu-22.04-x64). The -oss- variant is what was in use before the GH-hosted switch, per git history.

Files changed (11 jobs)

  • pr.ymlcompile, copilot-check-test-cache, copilot-check-telemetry, copilot-linux-tests, copilot-windows-tests
  • pr-linux-cli-test.ymllinux-cli-test
  • pr-linux-test.ymllinux-test (also reverts ubuntu-24.04 → 22.04)
  • pr-win32-test.ymlwindows-test
  • pr-node-modules.ymlcompile, linux, windows (existing windows 1ES line also got JobId added)

Reverts the GitHub-hosted runner switch for ubuntu/windows jobs in pr*.yml
and adds a unique JobId label per job, per the IcM mitigation. The JobId
ensures 1ES pool runs are scoped to a specific GitHub Actions run+attempt,
which prevents the cancellation issues that occurred with bare pool labels.

Pool labels:
- 1es-vscode-oss-ubuntu-22.04-x64
- 1es-vscode-oss-windows-2022-x64

macOS jobs (pr-darwin-test.yml, pr-node-modules macOS) remain on
GitHub-hosted runners as no 1ES macOS pool exists.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 22, 2026 19:12
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 the repo’s GitHub Actions workflows to move Ubuntu/Windows PR jobs back onto 1ES self-hosted runner pools and adds a per-run/per-attempt JobId runner label intended to prevent intermittent 1ES cancellations.

Changes:

  • Switch PR jobs from GitHub-hosted runners to self-hosted 1ES pools for Ubuntu 22.04 and Windows 2022.
  • Add a JobId=<job>-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }} label to affected jobs.
  • Revert the Linux PR test workflow runner selection from ubuntu-24.04 to the Ubuntu 22.04 1ES pool.
Show a summary per file
File Description
.github/workflows/pr.yml Moves selected PR jobs to 1ES self-hosted pools and adds JobId labels.
.github/workflows/pr-linux-cli-test.yml Updates reusable Linux CLI test workflow to use 1ES pool + JobId.
.github/workflows/pr-linux-test.yml Updates reusable Linux test workflow to 1ES pool + JobId (and reverts from 24.04 to 22.04 pool).
.github/workflows/pr-win32-test.yml Updates reusable Windows test workflow to 1ES pool + JobId.
.github/workflows/pr-node-modules.yml Updates main-branch node_modules jobs (Linux/Windows/compile) to use 1ES pools + JobId.

Copilot's findings

  • Files reviewed: 5/5 changed files
  • Comments generated: 3

Comment thread .github/workflows/pr-linux-test.yml Outdated
Comment thread .github/workflows/pr-win32-test.yml Outdated
Comment thread .github/workflows/pr-node-modules.yml
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Screenshot Changes

Base: 096e5abe Current: 7e9ab268

Changed (1)

editor/inlineCompletions/other/JumpToHint/Dark
Before After
before after

Yoyokrazy and others added 2 commits April 22, 2026 12:17
Linux electron tests were stabilized by moving to ubuntu-24.04 in #308495
and #309451. Keep that runner GH-hosted while the rest of the PR workflows
use 1ES self-hosted pools.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
pr-win32-test.yml is invoked 3x from pr.yml (Electron/Browser/Remote) and
without a per-invocation discriminator all 3 jobs share the same JobId
within a run, defeating the 1ES per-job scoping. Add inputs.job_name to
the JobId prefix so each invocation is distinct. Apply the same defense
to pr-linux-cli-test.yml for safety.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Yoyokrazy Yoyokrazy marked this pull request as ready for review April 22, 2026 19:30
@Yoyokrazy Yoyokrazy enabled auto-merge (squash) April 22, 2026 19:32
@Yoyokrazy Yoyokrazy merged commit 94c4655 into main Apr 22, 2026
26 checks passed
@Yoyokrazy Yoyokrazy deleted the agents/runner-pool-reconfiguration-1es-8932bbef branch April 22, 2026 19:53
@vs-code-engineering vs-code-engineering Bot added this to the 1.118.0 milestone Apr 22, 2026
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.

3 participants