-
Notifications
You must be signed in to change notification settings - Fork 451
133 lines (108 loc) · 3.39 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: VFS for Git
on:
pull_request:
branches: [ master, releases/shipped ]
push:
branches: [ master, releases/shipped ]
jobs:
build:
runs-on: windows-2019
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: 5.0.201
- 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: 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
- name: Upload NuGet packages
uses: actions/upload-artifact@v4
with:
name: NuGetPackages_${{ matrix.configuration }}
path: artifacts\NuGetPackages
functional_test:
runs-on: windows-2019
name: Functional Tests
needs: build
strategy:
matrix:
configuration: [ Debug, Release ]
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 }}
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 }}
path: TestResult.xml
- name: Upload Git trace2 output
if: always()
uses: actions/upload-artifact@v4
with:
name: GitTrace2_${{ matrix.configuration }}
path: C:\temp\git-trace2.log
- name: ProjFS details (post-test)
if: always()
shell: cmd
run: install\info.bat