Skip to content

fix(azdo): ship valid Node24 task handlers and restore AzDO test and publish - #448

Open
Todor Genov (tgenov) wants to merge 3 commits into
devcontainers:mainfrom
tgenov:fix/azdo-node-handlers
Open

Todor Genov (tgenov) wants to merge 3 commits into
devcontainers:mainfrom
tgenov:fix/azdo-node-handlers

Conversation

@tgenov

Copy link
Copy Markdown
Contributor

Refs #444

Problem

The Marketplace extension devcontainers.ci is at 0.3.1900000417 (2025-02-07). Its task uses Node16. This causes the warnings in #444. No publish ran after that date:

A publish of main today would ship two more defects:

  1. DevcontainersCi/task.json uses Node20 (Update Node, NPM, Go tools and Debian  #438). The agent has no Node20 handler. The valid keys are Node, Node10, Node16, Node20_1 and Node24 (tasks.schema.json).
  2. DevcontainersMerge/task.json uses only Node16. feat: native multi-platform builds via runner matrix (no QEMU emulation) #435 added it by mistake.

Changes

  • Both task.json files declare Node24, Node20_1 and Node16. Agents pick Node24 first. Node16 keeps agents older than 3.230.2 working. The agent shows no deprecation warning when Node20_1 or Node24 is present (CheckIfTaskNodeRunnerIsDeprecated).
  • merge/action.yml: node20 → node24, the same as action.yml. GitHub deprecated Node 20 for actions.
  • ci_common.yml:
    • test-azdo is a job again. checks-succeeded and release do not need it, so an AzDO failure does not stop the GitHub Action release. The run shows the failure.
    • The AzDO publish moves to a new job, publish-azdo. It runs after release, and only if test-azdo passed.

I did not restore the enableAzdo input. Its expression gave true for false.

Before merge (maintainer)

/test uses the workflows from main, not from this PR. To test this change:

  1. Push this branch to devcontainers/ci. The AzDO pipeline can build only commits in that repo.
  2. Run "CI (branch)" on that branch. Set prNumber to this PR. Without it, IMAGE_TAG is empty and the AzDO test stops.
  3. Read the "Run AzDO test" log. publish-azdo does not run, because release is false.

If the log shows a token error, replace AZDO_TOKEN or refresh its access (see CONTRIBUTING.md).

Security

This PR enables test-azdo on /test again. The job runs the PR's code with AZDO_TOKEN, as before #441. pr_auto never runs it. Any repository collaborator can send /test. Read the full diff before you send it.

Verification

  • ./scripts/build-local.sh in the dev container (Node 24): passes. 49 tests in common and 2 in the AzDO task pass.
  • All handler keys in both task.json files are in the schema. Node20 on main is not.
  • actionlint 1.7.7: no new findings.
  • Not tested: a real AZDO_TOKEN, the AzDO test pipeline, and DevcontainersMerge in AzDO. The test pipeline does not use that task, so the first publish ships it untested.

Follow-up (not in this PR)

  • DevcontainersMerge/task.json stays at 0.0.0. The build sets the patch version for DevcontainersCi only. Agents cache tasks by version, so later changes may not reach them.
  • .devcontainer/Dockerfile installs tfx-cli with no version.

The agent has no "Node20" handler (devcontainers#438). The valid keys are Node,
Node10, Node16, Node20_1 and Node24 (tasks.schema.json).
DevcontainersMerge used only the deprecated "Node16" (devcontainers#435).

Declare Node24, Node20_1 and Node16 in both tasks. Agents pick Node24
first. Node16 keeps agents older than 3.230.2 working. The agent shows
no deprecation warning when Node20_1 or Node24 is present.

Refs devcontainers#444
GitHub deprecated Node 20 for actions. The runner notice gives
2026-09-16 as the removal date. Use node24, the same as action.yml.
devcontainers#441 commented out the AzDO test and publish steps, because the failing
AzDO test blocked the GitHub Action release.

- test-azdo is a job again. checks-succeeded and release do not need
  it, so an AzDO failure does not stop the GitHub Action release.
- The publish step moves from release to a new publish-azdo job. It
  needs build, test-azdo and release.

Refs devcontainers#444
@tgenov

Copy link
Copy Markdown
Contributor Author

@copilot review this PR

This branch has not been deployed

No deployments
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.

1 participant