Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit ede0fd3

Browse files
Merge pull request #2306 from github/spike/zero-impact-2019
Create a zero impact extension for Visual Studio 2019
2 parents ba38028 + ce036dd commit ede0fd3

File tree

81 files changed

+16858
-108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+16858
-108
lines changed

Directory.Build.Props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22
<PropertyGroup>
33
<Product>GitHub Extension for Visual Studio</Product>
4-
<Version>2.10.0.0</Version>
4+
<Version>2.10.1.0</Version>
55
<Copyright>Copyright © GitHub, Inc. 2014-2018</Copyright>
66
<LangVersion>7.3</LangVersion>
77
</PropertyGroup>

appveyor.yml

Lines changed: 75 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,75 @@
1-
os: Visual Studio 2017
2-
version: '2.10.0.{build}'
3-
skip_tags: true
4-
5-
install:
6-
- choco install --no-progress BCC-MSBuildLog
7-
- choco install --no-progress BCC-Submission
8-
- ps: |
9-
$full_build = Test-Path env:GHFVS_KEY
10-
$forVSInstaller = $env:BUILD_TYPE -eq "vsinstaller"
11-
$forPackage = $env:BUILD_TYPE -eq "package"
12-
$package = $full_build -and ($env:APPVEYOR_PULL_REQUEST_NUMBER -or $forVSInstaller -or $forPackage)
13-
14-
$message = "Building "
15-
if ($package) { $message += "and packaging "}
16-
$message += "version " + $env:APPVEYOR_BUILD_NUMBER + " "
17-
18-
if ($full_build) { $message += "(full build)" } else { $message += "(partial build)" }
19-
if ($forVSInstaller) { $message += " for the VS installer" }
20-
Write-Host $message
21-
22-
git submodule init
23-
git submodule sync
24-
25-
if ($full_build) {
26-
$fileContent = "-----BEGIN RSA PRIVATE KEY-----`n"
27-
$fileContent += $env:GHFVS_KEY.Replace(' ', "`n")
28-
$fileContent += "`n-----END RSA PRIVATE KEY-----`n"
29-
Set-Content c:\users\appveyor\.ssh\id_rsa $fileContent
30-
} else {
31-
git submodule deinit script
32-
}
33-
34-
git submodule update --recursive --force
35-
nuget restore GitHubVS.sln
36-
37-
build_script:
38-
- ps: scripts\build.ps1 -AppVeyor -Package:$package -BuildNumber:$env:APPVEYOR_BUILD_NUMBER -ForVSInstaller:$forVSInstaller
39-
40-
test:
41-
categories:
42-
except:
43-
- Timings
44-
45-
on_success:
46-
- ps: |
47-
if ($package) {
48-
Write-Host "Signing and packaging"
49-
script\Sign-Package -AppVeyor -ForVSInstaller:$forVSInstaller
50-
}
51-
52-
for:
53-
-
54-
branches:
55-
except:
56-
- /releases/.*-vsinstaller/
57-
environment:
58-
matrix:
59-
- BUILD_TYPE: normal
60-
-
61-
branches:
62-
only:
63-
- /releases/.*-vsinstaller/
64-
environment:
65-
matrix:
66-
- BUILD_TYPE: package
67-
- BUILD_TYPE: vsinstaller
68-
-
69-
branches:
70-
only:
71-
- master
72-
- /releases/(?:(?!-vsinstaller).)*?/
73-
environment:
74-
matrix:
75-
- BUILD_TYPE: package
1+
os: Visual Studio 2019 Preview
2+
version: '2.10.1.{build}'
3+
skip_tags: true
4+
5+
install:
6+
- choco install --no-progress BCC-MSBuildLog
7+
- choco install --no-progress BCC-Submission
8+
- ps: |
9+
$full_build = Test-Path env:GHFVS_KEY
10+
$forVSInstaller = $env:BUILD_TYPE -eq "vsinstaller"
11+
$forPackage = $env:BUILD_TYPE -eq "package"
12+
$package = $full_build -and ($env:APPVEYOR_PULL_REQUEST_NUMBER -or $forVSInstaller -or $forPackage)
13+
14+
$message = "Building "
15+
if ($package) { $message += "and packaging "}
16+
$message += "version " + $env:APPVEYOR_BUILD_NUMBER + " "
17+
18+
if ($full_build) { $message += "(full build)" } else { $message += "(partial build)" }
19+
if ($forVSInstaller) { $message += " for the VS installer" }
20+
Write-Host $message
21+
22+
git submodule init
23+
git submodule sync
24+
25+
if ($full_build) {
26+
$fileContent = "-----BEGIN RSA PRIVATE KEY-----`n"
27+
$fileContent += $env:GHFVS_KEY.Replace(' ', "`n")
28+
$fileContent += "`n-----END RSA PRIVATE KEY-----`n"
29+
Set-Content c:\users\appveyor\.ssh\id_rsa $fileContent
30+
} else {
31+
git submodule deinit script
32+
}
33+
34+
git submodule update --recursive --force
35+
Write-Host "Completed AppVeyor Install"
36+
37+
build_script:
38+
- ps: scripts\build.ps1 -AppVeyor -Package:$package -BuildNumber:$env:APPVEYOR_BUILD_NUMBER -ForVSInstaller:$forVSInstaller
39+
40+
test:
41+
categories:
42+
except:
43+
- Timings
44+
45+
on_success:
46+
- ps: |
47+
if ($package) {
48+
Write-Host "Signing and packaging"
49+
script\Sign-Package -AppVeyor -ForVSInstaller:$forVSInstaller
50+
}
51+
52+
for:
53+
-
54+
branches:
55+
except:
56+
- /releases/.*-vsinstaller/
57+
environment:
58+
matrix:
59+
- BUILD_TYPE: normal
60+
-
61+
branches:
62+
only:
63+
- /releases/.*-vsinstaller/
64+
environment:
65+
matrix:
66+
- BUILD_TYPE: package
67+
- BUILD_TYPE: vsinstaller
68+
-
69+
branches:
70+
only:
71+
- master
72+
- /releases/(?:(?!-vsinstaller).)*?/
73+
environment:
74+
matrix:
75+
- BUILD_TYPE: package

script

scripts/build.ps1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ if ($Package) {
8080
Write-Output "Building GitHub for Visual Studio"
8181
}
8282

83-
Build-Solution GitHubVs.sln "Build" $config -Deploy:$Package -ForVSInstaller:$ForVSInstaller
83+
Build-Solution GitHubVs.sln "Build" $config -Deploy:$Package -ForVSInstaller:$ForVSInstaller -VsixFileName:GitHub.VisualStudio.vsix
84+
85+
Push-Location src
86+
Build-Solution GitHub.VisualStudio.16.sln "Build" $config -Deploy:$Package -ForVSInstaller:$ForVSInstaller -VsixFileName:GitHub.VisualStudio.16.vsix
87+
Pop-Location
8488

8589
Pop-Location

scripts/common.ps1

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ function Die([string]$message, [object[]]$output) {
99
Throw (New-Object -TypeName ScriptException -ArgumentList $message)
1010
}
1111

12-
if (Test-Path "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe") {
13-
$msbuild = "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
14-
}
15-
elseif (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe") {
16-
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
12+
if (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe") {
13+
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe"
1714
}
1815
else {
1916
Die("No suitable msbuild.exe found.")

scripts/modules.ps1

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,38 +99,32 @@ New-Module -ScriptBlock {
9999

100100
New-Module -ScriptBlock {
101101
function Find-MSBuild() {
102-
if (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\MSBuild.exe") {
103-
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\MSBuild.exe"
104-
}
105-
elseif (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe") {
106-
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
107-
}
108-
elseif (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe") {
109-
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe"
102+
if (Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe") {
103+
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe"
110104
}
111105
else {
112106
Die("No suitable msbuild.exe found.")
113107
}
114108
$msbuild
115109
}
116110

117-
function Build-Solution([string]$solution, [string]$target, [string]$configuration, [switch]$ForVSInstaller = $false, [bool]$Deploy = $false) {
111+
function Build-Solution([string]$solution, [string]$target, [string]$configuration, [switch]$ForVSInstaller = $false, [string]$VsixFileName, [bool]$Deploy = $false) {
118112
$msbuild = Find-MSBuild
119113

120114
Run-Command -Fatal { & $nuget restore $solution -NonInteractive -Verbosity detailed -MSBuildPath (Split-Path -parent $msbuild) }
121115
$flag1 = ""
122116
$flag2 = ""
123117
if ($ForVSInstaller) {
124118
$flag1 = "/p:IsProductComponent=true"
125-
$flag2 = "/p:TargetVsixContainer=$rootDirectory\build\vsinstaller\GitHub.VisualStudio.vsix"
119+
$flag2 = "/p:TargetVsixContainer=$rootDirectory\build\vsinstaller\$VsixFileName"
126120
new-item -Path $rootDirectory\build\vsinstaller -ItemType Directory -Force | Out-Null
127121
} elseif (!$Deploy) {
128122
$configuration += "WithoutVsix"
129123
$flag1 = "/p:Package=Skip"
130124
}
131125

132-
Write-Host "$msbuild $solution /target:$target /property:Configuration=$configuration /p:DeployExtension=false /verbosity:minimal /p:VisualStudioVersion=15.0 /bl:output.binlog $flag1 $flag2"
133-
Run-Command -Fatal { & $msbuild $solution /target:$target /property:Configuration=$configuration /p:DeployExtension=false /verbosity:minimal /p:VisualStudioVersion=15.0 /bl:output.binlog $flag1 $flag2 }
126+
Write-Host "$msbuild $solution /target:$target /property:Configuration=$configuration /p:DeployExtension=false /verbosity:minimal /p:VisualStudioVersion=16.0 /bl:output.binlog $flag1 $flag2"
127+
Run-Command -Fatal { & $msbuild $solution /target:$target /property:Configuration=$configuration /p:DeployExtension=false /verbosity:minimal /p:VisualStudioVersion=16.0 /bl:output.binlog $flag1 $flag2 }
134128
}
135129

136130
Export-ModuleMember -Function Find-MSBuild,Build-Solution
@@ -189,7 +183,7 @@ New-Module -ScriptBlock {
189183

190184
$manifest = @{
191185
NewestExtension = @{
192-
Version = [string](Read-CurrentVersionVsix)
186+
Version = [string](Read-CurrentVersionVsix 'src\GitHub.VisualStudio.Vsix')
193187
Commit = [string](Get-HeadSha)
194188
}
195189
}

scripts/modules/Versioning.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ New-Module -ScriptBlock {
3939
}
4040

4141
function Write-Version([System.Version]$version) {
42-
Write-VersionVsixManifest $version
42+
Write-VersionVsixManifest $version 'src\GitHub.VisualStudio.Vsix'
43+
Write-VersionVsixManifest $version 'src\GitHub.VisualStudio.16'
4344
Write-VersionSolutionInfo $version
4445
Write-VersionAppVeyor $version
4546
Write-DirectoryBuildProps $version

scripts/modules/Vsix.ps1

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
Set-StrictMode -Version Latest
22

33
New-Module -ScriptBlock {
4-
$gitHubDirectory = Join-Path $rootDirectory src\GitHub.VisualStudio.Vsix
54

6-
function Get-VsixManifestPath {
5+
function Get-VsixManifestPath([string]$projectPath) {
6+
$gitHubDirectory = Join-Path $rootDirectory $projectPath
77
Join-Path $gitHubDirectory source.extension.vsixmanifest
88
}
99

10-
function Get-VsixManifestXml {
11-
$xmlLines = Get-Content (Get-VsixManifestPath)
10+
function Get-VsixManifestXml([string]$projectPath) {
11+
$xmlLines = Get-Content (Get-VsixManifestPath($projectPath))
1212
# If we don't explicitly join the lines with CRLF, comments in the XML will
1313
# end up with LF line-endings, which will make Git spew a warning when we
1414
# try to commit the version bump.
@@ -17,18 +17,18 @@ New-Module -ScriptBlock {
1717
[xml] $xmlText
1818
}
1919

20-
function Read-CurrentVersionVsix {
21-
[System.Version] (Get-VsixManifestXml).PackageManifest.Metadata.Identity.Version
20+
function Read-CurrentVersionVsix([string]$projectPath) {
21+
[System.Version] (Get-VsixManifestXml($projectPath)).PackageManifest.Metadata.Identity.Version
2222
}
2323

24-
function Write-VersionVsixManifest([System.Version]$version) {
24+
function Write-VersionVsixManifest([System.Version]$version,[string]$projectPath) {
2525

26-
$document = Get-VsixManifestXml
26+
$document = Get-VsixManifestXml($projectPath)
2727

2828
$numberOfReplacements = 0
2929
$document.PackageManifest.Metadata.Identity.Version = $version.ToString()
3030

31-
$document.Save((Get-VsixManifestPath))
31+
$document.Save((Get-VsixManifestPath($projectPath)))
3232
}
3333

3434
Export-ModuleMember -Function Read-CurrentVersionVsix,Write-VersionVsixManifest

src/GitHub.VisualStudio.16.sln

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.28721.148
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.16", "GitHub.VisualStudio.16\GitHub.VisualStudio.16.csproj", "{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}"
7+
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.TestApp", "GitHub.VisualStudio.TestApp\GitHub.VisualStudio.TestApp.csproj", "{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}"
9+
EndProject
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.UI.16", "GitHub.VisualStudio.UI.16\GitHub.VisualStudio.UI.16.csproj", "{00423E7A-0838-4BE1-9263-181006DFF96B}"
11+
EndProject
12+
Global
13+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
14+
Debug|Any CPU = Debug|Any CPU
15+
DebugWithoutVsix|Any CPU = DebugWithoutVsix|Any CPU
16+
Release|Any CPU = Release|Any CPU
17+
ReleaseWithoutVsix|Any CPU = ReleaseWithoutVsix|Any CPU
18+
EndGlobalSection
19+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
20+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
22+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
23+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
24+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
25+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.Release|Any CPU.Build.0 = Release|Any CPU
26+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.ReleaseWithoutVsix|Any CPU.ActiveCfg = ReleaseWithoutVsix|Any CPU
27+
{4D63EA3B-6896-42B5-B182-AA54D9F5CFD6}.ReleaseWithoutVsix|Any CPU.Build.0 = ReleaseWithoutVsix|Any CPU
28+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
30+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
31+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
32+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
33+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.Release|Any CPU.Build.0 = Release|Any CPU
34+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
35+
{8BA418B2-DCB2-4E89-82A0-93B36F2B8FFE}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
36+
{00423E7A-0838-4BE1-9263-181006DFF96B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{00423E7A-0838-4BE1-9263-181006DFF96B}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{00423E7A-0838-4BE1-9263-181006DFF96B}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
39+
{00423E7A-0838-4BE1-9263-181006DFF96B}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
40+
{00423E7A-0838-4BE1-9263-181006DFF96B}.Release|Any CPU.ActiveCfg = Release|Any CPU
41+
{00423E7A-0838-4BE1-9263-181006DFF96B}.Release|Any CPU.Build.0 = Release|Any CPU
42+
{00423E7A-0838-4BE1-9263-181006DFF96B}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
43+
{00423E7A-0838-4BE1-9263-181006DFF96B}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
44+
EndGlobalSection
45+
GlobalSection(SolutionProperties) = preSolution
46+
HideSolutionNode = FALSE
47+
EndGlobalSection
48+
GlobalSection(ExtensibilityGlobals) = postSolution
49+
SolutionGuid = {8EF8212E-9A03-46A9-8989-BBA88CDB77C0}
50+
EndGlobalSection
51+
EndGlobal

0 commit comments

Comments
 (0)