Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul build and project systems and drop Mac/POSIX code #1744

Merged
merged 35 commits into from
Jun 29, 2021
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
9ec87a2
build: drop old Azure Pipelines YAML CI/PR builds
mjcheetham Jun 28, 2021
3aa29b2
build: drop all old scripts
mjcheetham Jun 28, 2021
bfc909d
GitHooksLoader: move under GVFS dir and migrate proj
mjcheetham Jun 28, 2021
0ce4d9e
build: drop old targets/props and add new ones
mjcheetham Jun 28, 2021
7004ac7
build: drop more Mac/POSIX code
mjcheetham Jun 28, 2021
8602d8a
build: replace GVFS.Build with simpler MSBuild code
mjcheetham Jun 28, 2021
026b7b9
build: migrate VC++ projects to new build
mjcheetham Jun 28, 2021
d53ae03
build: migrate GVFS.Common project
mjcheetham Jun 28, 2021
fc39a8a
build: migrate GVFS.GVFlt project
mjcheetham Jun 28, 2021
edc5a4f
build: migrate GVFS.Virtualization project
mjcheetham Jun 28, 2021
1abeca4
build: migrate GVFS.Platform project
mjcheetham Jun 28, 2021
b60b9da
build: migrate GVFS.Hooks project
mjcheetham Jun 28, 2021
4eb8677
build: migrate GVFS.Upgrader project
mjcheetham Jun 28, 2021
57c2248
build: migrate GVFS.Mount project
mjcheetham Jun 28, 2021
2dbf900
build: migrate GVFS.Service project
mjcheetham Jun 28, 2021
480006a
build: migrate GVFS.Service.UI project
mjcheetham Jun 28, 2021
e5ce040
build: migrate GVFS project
mjcheetham Jun 28, 2021
c55c731
build: migrate FastFetch project
mjcheetham Jun 28, 2021
b9fc1a2
build: migrate GVFS.UnitTests and .Tests projects
mjcheetham Jun 28, 2021
e38a129
build: migrate GVFS.FunctionalTests.LockHolder project
mjcheetham Jun 28, 2021
7c5c374
build: migrate GVFS.PerfProfiling project
mjcheetham Jun 28, 2021
173d930
build: replace GVFS.SignFiles with GVFS.Payload project
mjcheetham Jun 28, 2021
fbf300b
build: migrate GVFS.Installer.Windows project
mjcheetham Jun 28, 2021
5039078
build: merge GVFS.FunctionalTests.Windows tests into main project
mjcheetham Jun 28, 2021
0a93076
build: migrate GVFS.FunctionalTests project file
mjcheetham Jun 28, 2021
2945674
build: drop Mac/POSIX tests and drop WinOnly category
mjcheetham Jun 28, 2021
5853b5a
build: update FTs to run always against PATH
mjcheetham Jun 28, 2021
7437854
build: ignore functional tests that fail in CI only
mjcheetham Jun 28, 2021
5a464b6
build: migrate solution file
mjcheetham Jun 28, 2021
26376f2
build: add back new build scripts (for Windows only)
mjcheetham Jun 28, 2021
073780f
build: add GitHub Actions CI/PR workflow
mjcheetham Jun 28, 2021
072d7bc
build: add (currently unused) AzDO YAML release build
mjcheetham Jun 28, 2021
9f3b02c
build: run functional tests in PR builds
mjcheetham Jun 28, 2021
6933600
build: drop AnyCPU and x86 solution configurations
mjcheetham Jun 28, 2021
103dbfd
build: add releases/shipped to PR build trigger
mjcheetham Jun 29, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: VFS for Git

on:
pull_request:
branches: [ master ]
mjcheetham marked this conversation as resolved.
Show resolved Hide resolved
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@v2
with:
path: src

- name: Install .NET SDK
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.201

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

- 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@v2
with:
name: FunctionalTests_${{ matrix.configuration }}
path: artifacts\GVFS.FunctionalTests

- name: Upload FastFetch drop
uses: actions/upload-artifact@v2
with:
name: FastFetch_${{ matrix.configuration }}
path: artifacts\FastFetch

- name: Upload installers
uses: actions/upload-artifact@v2
with:
name: Installers_${{ matrix.configuration }}
path: artifacts\GVFS.Installers

- name: Upload NuGet packages
uses: actions/upload-artifact@v2
with:
name: NuGetPackages_${{ matrix.configuration }}
path: artifacts\NuGetPackages

functional_test:
runs-on: windows-2019
name: Functional Tests
needs: build

# Only run the fuctional tests on pushes (not PRs)
if: ${{ github.event_name == 'push' }}

strategy:
matrix:
configuration: [ Debug, Release ]

steps:
- name: Download installers
uses: actions/download-artifact@v2
with:
name: Installers_${{ matrix.configuration }}
path: install

- name: Download functional tests drop
uses: actions/download-artifact@v2
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@v2
with:
name: InstallationLogs_${{ matrix.configuration }}
path: install\logs

- name: Run functional tests
shell: cmd
run: |
SET PATH=C:\Program Files\GVFS;%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@v2
with:
name: FunctionalTests_Results_${{ matrix.configuration }}
path: TestResult.xml

- name: Upload Git trace2 output
if: always()
uses: actions/upload-artifact@v2
with:
name: GitTrace2_${{ matrix.configuration }}
path: C:\temp\git-trace2.log

- name: ProjFS details (post-test)
if: always()
shell: cmd
run: install\info.bat