This repository was archived by the owner on May 9, 2022. It is now read-only.
forked from microsoft/VFSForGit
-
Notifications
You must be signed in to change notification settings - Fork 16
This repository was archived by the owner on May 9, 2022. It is now read-only.
Tracking: Set up unit and functional test CI for Linux #18
Copy link
Copy link
Closed
Labels
Description
This tracking issue is intended as a roadmap of the steps required to implement the full functional test suite of VFSForGit in Azure DevOps CI for the Linux platform.
- Enable full Linux unit test CI on the
features/linuxprototypebranch:- Enable the
PR - Linux - Build and Unit Testpipeline withMirrorProviderbuild tasks on all PRs to branch (thanks, @jrbriggs!) - Merge [Linux] Implement update methods on Linux for placeholder files/dirs microsoft/VFSForGit#1128, then remove the
CPPFLAGSenvironment variables from theMirrorProviderbuild tasks. - Merge wait for mount (+ refactor) #21 into [Linux] Add GVFS platform and build configuration for Linux microsoft/VFSForGit#1125.
- Implement Set initial projection state on backing store at first mount libprojfs#71 (Determine top-level projection state and pass to libprojfs at mount time #20) (Determine top-level projection state and pass to libprojfs at mount time #24) (Determine initial projection state in provider rather than ProjFS layer #27) (VirtualizationInstance takes initializeStorageRoot flag #28)
- Merge [Linux] Add GVFS platform and build configuration for Linux microsoft/VFSForGit#1125, then enable the
VFSForGitbuild tasks within thePR - Linux - Build and Unit Testpipeline. - Implement Detect and set projection state on read-only files libprojfs#72 (resolve problem with "git add" on mounted repos #23)
- Support case-sensitive file matching (Support case-sensitive file matching on Linux #29) (Perform case-sensitive path comparisons on Linux microsoft/VFSForGit#1232) ([Linux] Support case-sensitive filesystems microsoft/VFSForGit#1412) (restore mixed-case prefetch folder list tests and tidy MirrorProviders microsoft/VFSForGit#1503) ([Linux] minor POSIX and path case comparison fixups microsoft/VFSForGit#1531)
- Enable the
- Resolve any outstanding problems running the functional test suite on Linux:
- Enable all relevant functional tests marked Mac-only or Windows-only. (enable on Linux all relevant functional tests marked Mac/Windows-only #33)
- Ensure any necessary PRs are merged into
features/linuxprototype([Linux] enable most functional tests on Linux microsoft/VFSForGit#1432) - Ensure any necessary PRs are merged into
master([Linux] Convert tests and repair jobs to use backing root microsoft/VFSForGit#1411) ([Linux] Support case-sensitive filesystems microsoft/VFSForGit#1412) ([Linux] Revise functional tests for cross-device mounts microsoft/VFSForGit#1413) ([POSIX] Use platform-specific path separators in repair jobs and cache tests microsoft/VFSForGit#1448) ([POSIX] convert Mac-specific functional tests to POSIX where viable microsoft/VFSForGit#1529) ([Linux] Use backing root and check min version in dehydrate commands/tests microsoft/VFSForGit#1535)
- Resolve custom Git installation and packaging:
- Rewrite "git build Linux installer" task to create
.debpackage within NuGet package and push to MyGet. - Add Linux build task to "git - build installers" pipeline.
- Rewrite "git build Linux installer" task to create
- Enable full Linux functional test CI on the
features/linuxprototypebranch:- Either an Azure DevOps task group, or, if following the Mac model, a GitHub CI job instead.
Possible additional steps:
- Once functional test CI is successfully working on
features/linuxprototype:- Refactor out all duplicate code between the Mac and Linux implementations, expanding the POSIX layer (e.g., introducing a
ProjFS.POSIXset of classes as per theposix-projfs-virt-instancebranch. - Merge
features/linuxprototypeintomasterand convert both CI jobs to run againstmaster. - 🍾 or 🍨, as desired.
- Refactor out all duplicate code between the Mac and Linux implementations, expanding the POSIX layer (e.g., introducing a
Reactions are currently unavailable