Skip to content

Commit

Permalink
Merge pull request #1744 from mjcheetham/newbuild
Browse files Browse the repository at this point in the history
Overhaul build and project systems and drop Mac/POSIX code
  • Loading branch information
mjcheetham authored Jun 29, 2021
2 parents ad5cea0 + 103dbfd commit bd54739
Show file tree
Hide file tree
Showing 304 changed files with 1,946 additions and 10,416 deletions.
66 changes: 0 additions & 66 deletions .azure-pipelines/continuous-integration.yml

This file was deleted.

22 changes: 0 additions & 22 deletions .azure-pipelines/pull-request.yml

This file was deleted.

93 changes: 93 additions & 0 deletions .azure-pipelines/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# NOTE: this pipeline definition is not currently used to build releases of VFS for Git.
# This is still done in the GVFS-Release-RealSign "classic" pipeline.

name: $(date:yy)$(DayOfYear)$(rev:.r)

variables:
signType: test
teamName: GVFS
configuration: Release
signPool: VSEng-MicroBuildVS2019
GVFSMajorAndMinorVersion: 1.0
GVFSRevision: $(Build.BuildNumber)

jobs:
- job: build
displayName: Windows Build and Sign

pool:
name: $(signPool)

steps:
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@2
displayName: Install signing plugin
inputs:
signType: '$(SignType)'

- task: UseDotNet@2
displayName: Install .NET SDK
inputs:
packageType: sdk
version: 5.0.201

- task: CmdLine@2
displayName: Build VFS for Git
inputs:
script: $(Build.Repository.LocalPath)\scripts\Build.bat $(configuration) $(GVFSMajorAndMinorVersion).$(GVFSRevision) detailed

- task: CmdLine@2
displayName: Run unit tests
inputs:
script: $(Build.Repository.LocalPath)\scripts\RunUnitTests.bat $(configuration)

- task: CmdLine@2
displayName: Create build artifacts
inputs:
script: $(Build.Repository.LocalPath)\scripts\CreateBuildArtifacts.bat $(configuration) $(Build.ArtifactStagingDirectory)

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Installer'
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\NuGetPackages
ArtifactName: Installer

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: FastFetch'
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\FastFetch
ArtifactName: FastFetch

- task: PublishSymbols@1
displayName: Enable Source Server
condition: eq(succeeded(), eq(variables['signType'], 'real'))
inputs:
SearchPattern: '**\*.pdb'
SymbolsFolder: $(Build.ArtifactStagingDirectory)\Symbols

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Symbols'
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\Symbols
ArtifactName: Symbols

- task: ms-vscs-artifact.build-tasks.artifactSymbolTask-1.artifactSymbolTask@0
displayName: Publish to Symbols on Symweb
condition: eq(succeeded(), eq(variables['signType'], 'real'))
inputs:
symbolServiceURI: https://microsoft.artifacts.visualstudio.com/DefaultCollection
sourcePath: $(Build.ArtifactStagingDirectory)/Symbols
expirationInDays: 2065
usePat: false

- task: NuGetCommand@2
displayName: Push GVFS.Installers package
condition: eq(succeeded(), eq(variables['signType'], 'real'))
inputs:
command: push
packagesToPush: $(Build.ArtifactStagingDirectory)\NuGetPackages\GVFS.Installers.*.nupkg
nuGetFeedType: external
publishFeedCredentials: '1essharedassets GVFS [PUBLISH]'

- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
displayName: Send MicroBuild Telemetry
condition: always()
40 changes: 0 additions & 40 deletions .azure-pipelines/templates/windows-build-and-unit-test.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .azure-pipelines/templates/windows-functional-test.yml

This file was deleted.

133 changes: 133 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,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@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/[email protected]

- 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

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
Loading

0 comments on commit bd54739

Please sign in to comment.