Skip to content

Download Microsoft Git from GitHub releases #228

Download Microsoft Git from GitHub releases

Download Microsoft Git from GitHub releases #228

Workflow file for this run

name: VFS for Git
on:
pull_request:
branches: [ master, releases/shipped ]
push:
branches: [ master, releases/shipped ]
workflow_dispatch:
inputs:
git_version:
description: 'Microsoft Git version tag to include in the build'
required: false
default: 'v2.50.1.vfs.0.0'
type: string
env:
GIT_VERSION: ${{ github.event.inputs.git_version || 'v2.50.1.vfs.0.0' }}
jobs:
build:
runs-on: windows-2025
name: Build and Unit Test
strategy:
matrix:
configuration: [ Debug, Release ]
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
path: src
- name: Install .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.413
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2.0.0
- name: Build VFS for Git
shell: cmd
run: src\scripts\Build.bat ${{ matrix.configuration }}
- name: Run unit tests
shell: cmd
run: src\scripts\RunUnitTests.bat ${{ matrix.configuration }}
- name: Create build artifacts
shell: cmd
run: src\scripts\CreateBuildArtifacts.bat ${{ matrix.configuration }} artifacts
- name: Download microsoft/git installers
shell: cmd
run: |
gh release download ${{ env.GIT_VERSION }} --repo microsoft/git --pattern "Git*.exe" --dir artifacts\GVFS.Installers
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload functional tests drop
uses: actions/upload-artifact@v4
with:
name: FunctionalTests_${{ matrix.configuration }}
path: artifacts\GVFS.FunctionalTests
- name: Upload FastFetch drop
uses: actions/upload-artifact@v4
with:
name: FastFetch_${{ matrix.configuration }}
path: artifacts\FastFetch
- name: Upload installers
uses: actions/upload-artifact@v4
with:
name: Installers_${{ matrix.configuration }}
path: artifacts\GVFS.Installers
functional_test:
runs-on: ${{ matrix.architecture == 'arm64' && 'windows-11-arm' || 'windows-2025' }}
name: Functional Tests
needs: build
strategy:
matrix:
configuration: [ Debug, Release ]
architecture: [ x86_64, arm64 ]
steps:
- name: Download installers
uses: actions/download-artifact@v4
with:
name: Installers_${{ matrix.configuration }}
path: install
- name: Download functional tests drop
uses: actions/download-artifact@v4
with:
name: FunctionalTests_${{ matrix.configuration }}
path: ft
- name: ProjFS details (pre-install)
shell: cmd
run: install\info.bat
- name: Install product
shell: cmd
run: install\install.bat
- name: ProjFS details (post-install)
shell: cmd
run: install\info.bat
- name: Upload installation logs
if: always()
uses: actions/upload-artifact@v4
with:
name: InstallationLogs_${{ matrix.configuration }}_${{ matrix.architecture }}
path: install\logs
- name: Run functional tests
shell: cmd
run: |
SET PATH=C:\Program Files\VFS for Git;%PATH%
SET GIT_TRACE2_PERF=C:\temp\git-trace2.log
ft\GVFS.FunctionalTests.exe /result:TestResult.xml --ci
- name: Upload functional test results
if: always()
uses: actions/upload-artifact@v4
with:
name: FunctionalTests_Results_${{ matrix.configuration }}_${{ matrix.architecture }}
path: TestResult.xml
- name: Upload Git trace2 output
if: always()
uses: actions/upload-artifact@v4
with:
name: GitTrace2_${{ matrix.configuration }}_${{ matrix.architecture }}
path: C:\temp\git-trace2.log
- name: ProjFS details (post-test)
if: always()
shell: cmd
run: install\info.bat