Skip to content

Conversation

@liliankasem
Copy link
Member

@liliankasem liliankasem commented Jan 8, 2026

Context

Update FuncToolsInstaller task to use current Azure Functions Core Tools version, add architecture detection for ARM64 support, and default to x64 architecture on Windows platforms.


Task Name

FuncToolsInstallerV0


Description

  • Added architecture detection using os.arch() to support ARM64 on all platforms (Linux, macOS, Windows)
  • Updated Windows platform to default to x64 architecture (from x86), with fallback to x86 for actual 32-bit systems
  • Updated stable fallback version from 2.7.1585 to 4.6.0
  • Updated all documentation examples from version 2.7.1575 to 4.6.0 across all localized resource files (10 languages)
  • Bumped task version from 0.263.0 to 0.269.0 (sprint 269 release)

Risk Assessment (Low)

Medium - Adds architecture detection which improves platform support but changes default behavior. Now automatically detects and uses ARM64 binaries where appropriate. Aligns with current Azure Functions Core Tools distribution patterns.


Change Behind Feature Flag (No)

No - This is a configuration/default change to align with current Azure Functions Core Tools versions and modern platform standards. The task dynamically detects architecture at runtime, so users automatically get the correct binary for their system.


Tech Design / Approach

  • Architecture detection: Added getPlatformIdentifier() helper function that uses os.arch() to detect CPU architecture
  • Supports: linux-x64, linux-arm64, osx-x64, osx-arm64, win-x64, win-x86, win-arm64
  • Version updates: Updated stable fallback constant and all documentation examples to 4.6.0
  • No architectural changes required - straightforward configuration and detection logic updates

Documentation Changes Required (No)

  • No external documentation changes needed (task help text already updated)
    • All localized resource files updated with current version examples (4.6.0)
    • task.json and task.loc.json updated with current version examples

Unit Tests Added or Updated (No)

Existing tests remain valid. Version and architecture are determined at runtime based on system detection and user inputs.


Additional Testing Performed

  • Manual verification recommended on Windows x64 agent with latest version
  • Manual verification recommended on ARM64 platforms (Apple Silicon Mac, Linux ARM64, Windows ARM64)
  • Manual verification recommended with explicit version specification (e.g., 4.6.0)
  • Test backward compatibility with older versions when users specify them explicitly

Logging Added/Updated (Yes)

  • Added warning log for unknown platforms with fallback information
  • Existing logging already captures version info and download paths

Telemetry Added/Updated (No)

No telemetry changes required. Existing task telemetry remains applicable.


Rollback Scenario and Process (Yes)

  • Rollback: Revert to version 0.263.0 if issues arise
  • Users experiencing issues with architecture detection can pin to older task version or explicitly specify older Azure Functions Core Tools versions
  • Architecture is detected at runtime, so issues would surface during task execution with clear error messages

Dependency Impact Assessed and Regression Tested (Yes)

  • Azure Functions Core Tools 4.6.0 is backward compatible with previous versions
  • ARM64 binaries available since 4.3.0 (osx-arm64, linux-arm64) and 4.6.0 (win-arm64)
  • x64 architecture is the standard for modern systems
  • x86 fallback maintained for actual 32-bit Windows systems

Checklist

==============================================================================
Task         : Install Azure Func Core Tools
Description  : Install Azure Func Core Tools
Version      : 0.269.0
Author       : Microsoft Corporation
Help         : https://aka.ms/func-tools-installer
==============================================================================

Latest version is 4.6.0
Downloading: https://github.com/Azure/azure-functions-core-tools/releases/download/4.6.0/Azure.Functions.Cli.win-x64.4.6.0.zip
Extracting archive
C:\Windows\system32\chcp.com 65001
Active code page: 65001

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('D:\a\_temp\f46c254d-582d-4cb6-b720-71725e8baf3e', 'D:\a\_temp\4116330e-dc64-4cf1-bce8-f410f74bed4c')"

Caching tool: func 4.6.0 x64
Successfully downloaded func tools 4.6.0. Download path: C:\hostedtoolcache\windows\func\4.6.0\x64.
Prepending PATH environment variable with directory: C:\hostedtoolcache\windows\func\4.6.0\x64
Verifying func tools installation...
C:\hostedtoolcache\windows\func\4.6.0\x64\func.exe --version
4.6.0

Finishing: Install Azure Functions Core Tools

@liliankasem liliankasem requested review from a team and manolerazvan as code owners January 8, 2026 19:11
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