[App Service] az webapp create/list-runtimes: Change Node.js 26 runtime identifier - #33864
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution aamos-company! We will review the pull request and get back to you soon. |
514c768 to
eb2b19b
Compare
eb2b19b to
216e574
Compare
7b56e06 to
dca47d4
Compare
|
AppService |
| @@ -7990,6 +7716,13 @@ def _format_windows_display_text(cls, display_text): | |||
| t = re.sub(r"\(.*\)", "", t) # remove "(LTS)" | |||
| return t.replace(" ", "|", 1).replace(" ", "") | |||
|
|
|||
| @staticmethod | |||
| def _standardize_node_runtime_name(runtime_name): | |||
There was a problem hiding this comment.
recognizes these case-insensitive forms:
NODE|26
NODE|26-lts
NODE|26LTS
All become:
NODE|26'
For all versions >=26
| @@ -8302,7 +8036,7 @@ def _parse_major_version_linux(self, major_version, parsed_results, seen_runtime | |||
| major_version, linux=True, java=False, include_eol=self._include_eol) | |||
| for minor_version in minor_versions: | |||
| settings = minor_version.stack_settings.linux_runtime_settings | |||
| runtime_name = settings.runtime_version | |||
| runtime_name = self._standardize_node_runtime_name(settings.runtime_version) | |||
There was a problem hiding this comment.
If the stacks API returns:
NODE|26-lts
the resulting runtime object is:
display_name: NODE|26
configs:
linux_fx_version: NODE|26
github_actions_version: 26.x
…andardized name for the config
8cbfc20 to
c15b129
Compare
|
Note: It's made clear in the help output that --runtime canonicalizes the input. This is not the same case for the --linux-fx-version which is taken as a raw string. I am hesitant to change that, but open to feedback. From my understanding of the email thread, ARM will continue to accept |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
This PR standardizes the Node.js 26 App Service runtime identifier to NODE|26 (dropping -lts / LTS) across az webapp create, az webapp list-runtimes, and GitHub Actions runtime handling, while keeping older Node identifiers unchanged for compatibility.
Changes:
- Standardize Node 26 runtime names during stack parsing and runtime resolution so
NODE|26-lts/NODE|26LTSmap toNODE|26. - Deduplicate stack entries after parsing to avoid duplicated runtimes (notably when API returns both “current” and “LTS” variants).
- Add/adjust tests to validate Node 26 standardization, legacy Node behavior, and GitHub Actions runtime normalization.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py | Updates GitHub Actions runtime test expectations and adds new regression tests for Node 26 runtime standardization/deduping. |
| src/azure-cli/azure/cli/command_modules/appservice/custom.py | Implements Node 26 runtime name standardization, stack deduplication, and ensures GitHub Actions/runtime info paths return standardized names. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
Live test results —
|
az webapp create/list-runtimes: Change Node.js 26 runtime identifier.
There was a problem hiding this comment.
CI Summary
This PR currently has failing checks that need attention before it can be merged:
- ❌ Azure.azure-cli (Build) — the build check failed. See: https://github.com/Azure/azure-cli/runs/95977751452
- ❌ Check the Format of Pull Request Title and Content — the PR title/description doesn't meet the required format. See: https://github.com/Azure/azure-cli/runs/95977747704
Please review the linked check logs, address the build failure, and update the PR title/description to match the required format (see the PR template and title guidelines). Once fixed, CI will re-run automatically.
az webapp create/list-runtimes: Change Node.js 26 runtime identifier.az webapp create/list-runtimes: Change Node.js 26 runtime identifier
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
az webapp create/list-runtimes: Change Node.js 26 runtime identifieraz webapp create/list-runtimes: Change Node.js 26 runtime identifier
🤖 PR Validation — ️✔️ All clear
az webapp create,az webapp list-runtimesDescription
Use NODE|26 as the standard Node.js 26 runtime identifier for both Windows and Linux App Service plans by dropping LTS / -lts from the identifier. LTS is lifecycle metadata, not part of the Node version itself. Existing identifiers for Node.js 24 and earlier remain unchanged and supported.
Previously:

Testing Guide
azdev test TestStackRuntimeNodeStandardization
azdev style appservice
The added tests verify:
• Node 26 displays as NODE|26 on both platforms.
• Linux configuration is exactly NODE|26 .
• Windows configuration remains ~26 .
• NODE|26-lts and NODE|26LTS resolve successfully.
• Node 24 identifiers remain unchanged.
• Current and LTS API entries are deduplicated.
• GitHub Actions returns NODE|26 and version 26.x .
This checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.