Fix ArchiveFilesV2 task to properly handle adding single files to existing archives #21036
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
When using the ArchiveFilesV2 task with
rootFolderOrFile
pointing to a single file andincludeRootFolder: false
, adding to an existing archive (replaceExistingArchive: false
) fails with a "Nothing to do" error.Root Cause
The
findFiles()
function was not correctly handling the case whenincludeRootFolder
is false androotFolderOrFile
points to a single file. The function was usingtl.ls()
, which is designed to list directory contents but doesn't handle file paths properly.Fix
Added a check in the
findFiles()
function to determine ifrootFolderOrFile
is a file whenincludeRootFolder
is false. If it is a file, the function now returns the basename of the file directly, matching the behavior whenincludeRootFolder
is true.Testing
Added a new test case
Successfully adds a single file to an existing archive
that verifies the task can properly add a single file to an existing archive.Fixes #21033.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
cdn.fwupd.org
/usr/bin/fwupdmgr refresh
(dns block)pkgs.dev.azure.com
npm install
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.