mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Package published projects (#1291)
* Package published project * sign and publish nuget packages * Publish logs * Sign before packaging * Add res of packages * Publish to specific folders * add comment * Remove unused package projects
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -40,7 +40,6 @@ msbuild.wrn
|
|||||||
# code coverage artifacts
|
# code coverage artifacts
|
||||||
coverage.xml
|
coverage.xml
|
||||||
node_modules
|
node_modules
|
||||||
packages
|
|
||||||
reports
|
reports
|
||||||
opencovertests.xml
|
opencovertests.xml
|
||||||
outputCobertura.xml
|
outputCobertura.xml
|
||||||
@@ -173,7 +172,6 @@ publish/
|
|||||||
*.nuget.props
|
*.nuget.props
|
||||||
*.nuget.targets
|
*.nuget.targets
|
||||||
src/**/*.nupkg
|
src/**/*.nupkg
|
||||||
**/packages/*
|
|
||||||
|
|
||||||
# Windows Azure Build Output
|
# Windows Azure Build Output
|
||||||
csx/
|
csx/
|
||||||
|
|||||||
@@ -126,6 +126,41 @@ steps:
|
|||||||
MaxConcurrency: 5
|
MaxConcurrency: 5
|
||||||
condition: and(succeeded(), eq(variables['signed'], true))
|
condition: and(succeeded(), eq(variables['signed'], true))
|
||||||
|
|
||||||
|
- task: BatchScript@1
|
||||||
|
displayName: 'Package published projects'
|
||||||
|
inputs:
|
||||||
|
filename: build.cmd
|
||||||
|
arguments: '-target=dotnetpackpublished -mono'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||||
|
displayName: 'ESRP Code Signing - Nuget Package'
|
||||||
|
inputs:
|
||||||
|
ConnectedServiceName: 'Code Signing'
|
||||||
|
FolderPath: '$(Build.SourcesDirectory)/artifacts/nugetPackages'
|
||||||
|
Pattern: '*.nupkg'
|
||||||
|
signConfigType: 'inlineSignParams'
|
||||||
|
inlineOperation: |
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"keyCode": "CP-401405",
|
||||||
|
"operationSetCode": "NuGetSign",
|
||||||
|
"parameters": [ ],
|
||||||
|
"toolName": "sign",
|
||||||
|
"toolVersion": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"keyCode": "CP-401405",
|
||||||
|
"operationSetCode": "NuGetVerify",
|
||||||
|
"parameters": [ ],
|
||||||
|
"toolName": "sign",
|
||||||
|
"toolVersion": "1.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
SessionTimeout: '60'
|
||||||
|
MaxConcurrency: '50'
|
||||||
|
MaxRetryAttempts: '5'
|
||||||
|
|
||||||
- task: ArchiveFiles@1
|
- task: ArchiveFiles@1
|
||||||
displayName: 'Archive osx build'
|
displayName: 'Archive osx build'
|
||||||
inputs:
|
inputs:
|
||||||
@@ -171,10 +206,22 @@ steps:
|
|||||||
# archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win10-arm64-net5.0.zip'
|
# archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win10-arm64-net5.0.zip'
|
||||||
|
|
||||||
- task: PublishBuildArtifacts@1
|
- task: PublishBuildArtifacts@1
|
||||||
displayName: 'Publish Artifact: drop'
|
displayName: 'Publish Artifact: build archives'
|
||||||
inputs:
|
inputs:
|
||||||
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/package'
|
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/package'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact: nuget packages'
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/nugetPackages'
|
||||||
|
ArtifactName: 'packages'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact: logs'
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/logs'
|
||||||
|
ArtifactName: 'logs'
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
displayName: 'NuGet push'
|
displayName: 'NuGet push'
|
||||||
condition: eq(variables['PUSH_SYMBOLS'], 'true')
|
condition: eq(variables['PUSH_SYMBOLS'], 'true')
|
||||||
|
|||||||
60
build.cake
60
build.cake
@@ -48,7 +48,10 @@ public class BuildPlan
|
|||||||
public string[] Frameworks { get; set; }
|
public string[] Frameworks { get; set; }
|
||||||
public string[] Rids { get; set; }
|
public string[] Rids { get; set; }
|
||||||
public string[] MainProjects { get; set; }
|
public string[] MainProjects { get; set; }
|
||||||
|
// The set of projects that we want to call dotnet pack on directly
|
||||||
public string[] PackageProjects { get; set; }
|
public string[] PackageProjects { get; set; }
|
||||||
|
// The set of projects that we want to call dotnet pack on which require publishing being done first
|
||||||
|
public string[] PackagePublishedProjects { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
var buildPlan = JsonConvert.DeserializeObject<BuildPlan>(
|
var buildPlan = JsonConvert.DeserializeObject<BuildPlan>(
|
||||||
@@ -61,6 +64,7 @@ var toolsFolder = System.IO.Path.Combine(workingDirectory, buildPlan.BuildToolsF
|
|||||||
|
|
||||||
var sourceFolder = System.IO.Path.Combine(workingDirectory, "src");
|
var sourceFolder = System.IO.Path.Combine(workingDirectory, "src");
|
||||||
var testFolder = System.IO.Path.Combine(workingDirectory, "test");
|
var testFolder = System.IO.Path.Combine(workingDirectory, "test");
|
||||||
|
var packagesFolder = System.IO.Path.Combine(workingDirectory, "packages");
|
||||||
|
|
||||||
var artifactFolder = System.IO.Path.Combine(workingDirectory, buildPlan.ArtifactsFolder);
|
var artifactFolder = System.IO.Path.Combine(workingDirectory, buildPlan.ArtifactsFolder);
|
||||||
var publishFolder = System.IO.Path.Combine(artifactFolder, "publish");
|
var publishFolder = System.IO.Path.Combine(artifactFolder, "publish");
|
||||||
@@ -227,8 +231,9 @@ Task("BuildTest")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Build Test projects.
|
/// Packages projects specified in PackageProjects
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Task("DotnetPack")
|
Task("DotnetPack")
|
||||||
.IsDependentOn("Cleanup")
|
.IsDependentOn("Cleanup")
|
||||||
@@ -241,16 +246,29 @@ Task("DotnetPack")
|
|||||||
// For now, putting all nugets in the 1 directory
|
// For now, putting all nugets in the 1 directory
|
||||||
var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
|
var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
|
||||||
var projectFolder = System.IO.Path.Combine(sourceFolder, project);
|
var projectFolder = System.IO.Path.Combine(sourceFolder, project);
|
||||||
var runLog = new List<string>();
|
DotnetPack(outputFolder, projectFolder, project);
|
||||||
Run(dotnetcli, $"pack --configuration {configuration} --output {outputFolder} \"{projectFolder}\"",
|
|
||||||
new RunOptions
|
|
||||||
{
|
|
||||||
StandardOutputListing = runLog
|
|
||||||
})
|
|
||||||
.ExceptionOnError($"Packaging {project} failed.");
|
|
||||||
System.IO.File.WriteAllLines(System.IO.Path.Combine(logFolder, $"{project}-pack.log"), runLog.ToArray());
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Packages projects specified in PackagePublishedProjects, these projects require that publishing be done first. Note that we
|
||||||
|
/// don't do the publishing here because we need the binaries to be signed before being packaged up and that is done by the pipeline
|
||||||
|
/// currently.
|
||||||
|
/// </summary>
|
||||||
|
Task("DotnetPackPublished")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
foreach (var project in buildPlan.PackagePublishedProjects)
|
||||||
|
{
|
||||||
|
// For now, putting all nugets in the 1 directory
|
||||||
|
var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
|
||||||
|
var projectFolder = System.IO.Path.Combine(packagesFolder, project);
|
||||||
|
DotnetPack(outputFolder, projectFolder, project);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Run all tests for .NET Desktop and .NET Core
|
/// Run all tests for .NET Desktop and .NET Core
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -338,7 +356,7 @@ Task("OnlyPublish")
|
|||||||
.IsDependentOn("SRGen")
|
.IsDependentOn("SRGen")
|
||||||
.IsDependentOn("CodeGen")
|
.IsDependentOn("CodeGen")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
var packageName = buildPlan.PackageName;
|
var packageName = buildPlan.PackageName;
|
||||||
foreach (var project in buildPlan.MainProjects)
|
foreach (var project in buildPlan.MainProjects)
|
||||||
{
|
{
|
||||||
@@ -361,7 +379,7 @@ Task("OnlyPublish")
|
|||||||
//Only required for mac. We're assuming the openssl is installed in /usr/local/opt/openssl
|
//Only required for mac. We're assuming the openssl is installed in /usr/local/opt/openssl
|
||||||
//If that's not the case user has to run the command manually
|
//If that's not the case user has to run the command manually
|
||||||
if (!IsRunningOnWindows() && !IsRunningOnUnix() && runtime.Contains("osx"))
|
if (!IsRunningOnWindows() && !IsRunningOnUnix() && runtime.Contains("osx"))
|
||||||
{
|
{
|
||||||
Run("install_name_tool", "-add_rpath /usr/local/opt/openssl/lib " + outputFolder + "/System.Security.Cryptography.Native.dylib");
|
Run("install_name_tool", "-add_rpath /usr/local/opt/openssl/lib " + outputFolder + "/System.Security.Cryptography.Native.dylib");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -379,7 +397,7 @@ Task("OnlyPublish")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
CreateRunScript(System.IO.Path.Combine(publishFolder, project, "default"), scriptFolder);
|
CreateRunScript(System.IO.Path.Combine(publishFolder, project, "default"), scriptFolder);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -558,17 +576,17 @@ Task("SRGen")
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var projects = System.IO.Directory.GetFiles(sourceFolder, "*.csproj", SearchOption.AllDirectories).ToList();
|
var projects = System.IO.Directory.GetFiles(sourceFolder, "*.csproj", SearchOption.AllDirectories).ToList();
|
||||||
var locTemplateDir = System.IO.Path.Combine(sourceFolder, "../localization");
|
var locTemplateDir = System.IO.Path.Combine(sourceFolder, "../localization");
|
||||||
|
|
||||||
foreach(var project in projects) {
|
foreach(var project in projects) {
|
||||||
var projectDir = System.IO.Path.GetDirectoryName(project);
|
var projectDir = System.IO.Path.GetDirectoryName(project);
|
||||||
|
|
||||||
// set current directory to this project so relative paths can be reliably
|
// set current directory to this project so relative paths can be reliably
|
||||||
// used. This is to address an issue with quoting differences between Windows
|
// used. This is to address an issue with quoting differences between Windows
|
||||||
// and MacOS. On MacOS the dotnet command ends up calling SRGen with quotations around
|
// and MacOS. On MacOS the dotnet command ends up calling SRGen with quotations around
|
||||||
// the arguments stripped off. This causes SRGen to interpret the arg values as options
|
// the arguments stripped off. This causes SRGen to interpret the arg values as options
|
||||||
System.IO.Directory.SetCurrentDirectory(projectDir);
|
System.IO.Directory.SetCurrentDirectory(projectDir);
|
||||||
|
|
||||||
// build remaining paths relative to the project directory
|
// build remaining paths relative to the project directory
|
||||||
var localizationDir = System.IO.Path.Combine(".", "Localization");
|
var localizationDir = System.IO.Path.Combine(".", "Localization");
|
||||||
var projectName = (new System.IO.DirectoryInfo(projectDir)).Name;
|
var projectName = (new System.IO.DirectoryInfo(projectDir)).Name;
|
||||||
@@ -597,7 +615,7 @@ Task("SRGen")
|
|||||||
System.IO.File.Delete(outputCs);
|
System.IO.File.Delete(outputCs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!System.IO.Directory.Exists(inputXliff))
|
if (!System.IO.Directory.Exists(inputXliff))
|
||||||
{
|
{
|
||||||
System.IO.Directory.CreateDirectory(inputXliff);
|
System.IO.Directory.CreateDirectory(inputXliff);
|
||||||
}
|
}
|
||||||
@@ -628,23 +646,23 @@ Task("SRGen")
|
|||||||
var xlfDoc = new XliffParser.XlfDocument(docName);
|
var xlfDoc = new XliffParser.XlfDocument(docName);
|
||||||
var xlfFile = xlfDoc.Files.Single();
|
var xlfFile = xlfDoc.Files.Single();
|
||||||
|
|
||||||
// load a language template
|
// load a language template
|
||||||
var templateFileLocation = System.IO.Path.Combine(locTemplateDir, System.IO.Path.GetFileName(docName) + ".template");
|
var templateFileLocation = System.IO.Path.Combine(locTemplateDir, System.IO.Path.GetFileName(docName) + ".template");
|
||||||
var templateDoc = new XliffParser.XlfDocument(templateFileLocation);
|
var templateDoc = new XliffParser.XlfDocument(templateFileLocation);
|
||||||
var templateFile = templateDoc.Files.Single();
|
var templateFile = templateDoc.Files.Single();
|
||||||
|
|
||||||
// iterate through our tranlation units and prune invalid units
|
// iterate through our tranlation units and prune invalid units
|
||||||
foreach (var unit in xlfFile.TransUnits)
|
foreach (var unit in xlfFile.TransUnits)
|
||||||
{
|
{
|
||||||
// if a unit does not have a target it is invalid
|
// if a unit does not have a target it is invalid
|
||||||
if (unit.Target != null) {
|
if (unit.Target != null) {
|
||||||
templateFile.AddTransUnit(unit.Id, unit.Source, unit.Target, 0, 0);
|
templateFile.AddTransUnit(unit.Id, unit.Source, unit.Target, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// export modified template to RESX
|
// export modified template to RESX
|
||||||
var newPath = System.IO.Path.Combine(localizationDir, System.IO.Path.GetFileName(docName));
|
var newPath = System.IO.Path.Combine(localizationDir, System.IO.Path.GetFileName(docName));
|
||||||
templateDoc.SaveAsResX(newPath.Replace("xlf","resx"));
|
templateDoc.SaveAsResX(newPath.Replace("xlf","resx"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
build.json
13
build.json
@@ -26,5 +26,18 @@
|
|||||||
],
|
],
|
||||||
"PackageProjects": [
|
"PackageProjects": [
|
||||||
"Microsoft.SqlTools.Hosting"
|
"Microsoft.SqlTools.Hosting"
|
||||||
|
],
|
||||||
|
"PackagePublishedProjects": [
|
||||||
|
"Microsoft.SqlToolsService",
|
||||||
|
"runtime.centos.7-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.debian.8-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.fedora.23-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.linux-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.osx-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService",
|
||||||
|
"runtime.win7-x64.native.Microsoft.SqlToolsService"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -12,29 +12,23 @@
|
|||||||
<ProjectReference Include="../runtime.centos.7-x64.native.Microsoft.SqlToolsService/runtime.centos.7-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.centos.7-x64.native.Microsoft.SqlToolsService/runtime.centos.7-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.debian.8-x64.native.Microsoft.SqlToolsService/runtime.debian.8-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.debian.8-x64.native.Microsoft.SqlToolsService/runtime.debian.8-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.fedora.23-x64.native.Microsoft.SqlToolsService/runtime.fedora.23-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.fedora.23-x64.native.Microsoft.SqlToolsService/runtime.fedora.23-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.linux-64-x64.native.Microsoft.SqlToolsService/runtime.linux-64-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.linux-x64.native.Microsoft.SqlToolsService/runtime.linux-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService/runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService/runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.osx.10.11-x64.native.Microsoft.SqlToolsService/runtime.osx.10.11-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.osx-x64.native.Microsoft.SqlToolsService/runtime.osx-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService/runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService/runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService/runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService/runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService/runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService/runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.win10-arm.native.Microsoft.SqlToolsService/runtime.win10-arm.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
|
||||||
<ProjectReference Include="../runtime.win10-arm64.native.Microsoft.SqlToolsService/runtime.win10-arm64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
|
||||||
<ProjectReference Include="../runtime.win7-x64.native.Microsoft.SqlToolsService/runtime.win7-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
<ProjectReference Include="../runtime.win7-x64.native.Microsoft.SqlToolsService/runtime.win7-x64.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
||||||
<ProjectReference Include="../runtime.win7-x86.native.Microsoft.SqlToolsService/runtime.win7-x86.native.Microsoft.SqlToolsService.csproj" PrivateAssets="All" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="runtime.linux-64-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.linux-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.debian.8-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.debian.8-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.opensuse.13.2-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.osx.10.11-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.osx-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.rhel.7.2-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.ubuntu.14.04-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.ubuntu.16.04-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.win10-arm.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
<PackageReference Include="runtime.win7-x64.native.Microsoft.SqlToolsService" VersionOverride="$(PackageVersion)" />
|
||||||
<PackageReference Include="runtime.win10-arm64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
|
||||||
<PackageReference Include="runtime.win7-x64.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
|
||||||
<PackageReference Include="runtime.win7-x86.native.Microsoft.SqlToolsService" Version="$(PackageVersion)" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
3
packages/README.md
Normal file
3
packages/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
This directory contains projects that only handle packaging up the published artifacts for SQL Tools Service.
|
||||||
|
|
||||||
|
There is one root project - `Microsoft.SqlToolsService`, and then a sub-project for each runtime that we currently support. The root project has a package dependency on each of the sub projects so that consumers only need to take a reference to the root project to be able to get all the necessary files for each platform.
|
||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/centos.7-x64/**" Pack="true" PackagePath="runtimes/centos.7-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/centos.7-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/centos.7-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<Project Sdk="Microsoft.Build.NoTargets">
|
<Project Sdk="Microsoft.Build.NoTargets">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PackageDescription>SQL Tools Service runtime components for win10-arm</PackageDescription>
|
<PackageDescription>SQL Tools Service runtime components for debian.8-x64</PackageDescription>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/win10-arm/**" Pack="true" PackagePath="runtimes/win10-arm/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/debian.8-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/debian.8-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/fedora.23-x64/**" Pack="true" PackagePath="runtimes/fedora.23-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/fedora.23-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/fedora.23-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/linux-64/**" Pack="true" PackagePath="runtimes/linux-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/linux-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/linux-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer-opensuse.13.2-x64-net5.0/**" Pack="true" PackagePath="runtimes/opensuse.13.2-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer-opensuse.13.2-x64-net5.0/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/opensuse.13.2-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/osx-x64/**" Pack="true" PackagePath="runtimes/osx-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/osx-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/osx-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/rhel.7.2-x64/**" Pack="true" PackagePath="runtimes/rhel.7.2-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/rhel.7.2-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/rhel.7.2-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/ubuntu.14.04/**" Pack="true" PackagePath="runtimes/ubuntu.14.04-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/ubuntu.14.04/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/ubuntu.14.04-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/ubuntu.16.04/**" Pack="true" PackagePath="runtimes/ubuntu.16.04-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/ubuntu.16.04/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/ubuntu.16.04-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.Build.NoTargets">
|
|
||||||
<PropertyGroup>
|
|
||||||
<PackageDescription>SQL Tools Service runtime components for win10-arm64</PackageDescription>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/win10-arm64/**" Pack="true" PackagePath="runtimes/win10-arm64/native" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -4,6 +4,6 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/win7-x64/**" Pack="true" PackagePath="runtimes/win7-x64/native" />
|
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/win7-x64/$(TargetFramework)/**" Pack="true" PackagePath="runtimes/win7-x64/native" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.Build.NoTargets">
|
|
||||||
<PropertyGroup>
|
|
||||||
<PackageDescription>SQL Tools Service runtime components for win7-x86</PackageDescription>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="../../artifacts/publish/Microsoft.SqlTools.ServiceLayer/win7-x86/**" Pack="true" PackagePath="runtimes/win7-x86/native" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -15,6 +15,10 @@ public class RunOptions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public IList<string> StandardOutputListing { get; set; }
|
public IList<string> StandardOutputListing { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Container logging the Error content.
|
||||||
|
/// </summary>
|
||||||
|
public IList<string> StandardErrorListing { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// Desired maximum time-out for the process
|
/// Desired maximum time-out for the process
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int TimeOut { get; set; }
|
public int TimeOut { get; set; }
|
||||||
@@ -117,7 +121,8 @@ ExitStatus Run(string exec, string args, RunOptions runOptions)
|
|||||||
{
|
{
|
||||||
WorkingDirectory = workingDirectory,
|
WorkingDirectory = workingDirectory,
|
||||||
UseShellExecute = false,
|
UseShellExecute = false,
|
||||||
RedirectStandardOutput = runOptions.StandardOutputListing != null
|
RedirectStandardOutput = runOptions.StandardOutputListing != null,
|
||||||
|
RedirectStandardError = runOptions.StandardErrorListing != null,
|
||||||
});
|
});
|
||||||
if (runOptions.StandardOutputListing != null)
|
if (runOptions.StandardOutputListing != null)
|
||||||
{
|
{
|
||||||
@@ -130,6 +135,17 @@ ExitStatus Run(string exec, string args, RunOptions runOptions)
|
|||||||
};
|
};
|
||||||
process.BeginOutputReadLine();
|
process.BeginOutputReadLine();
|
||||||
}
|
}
|
||||||
|
if (runOptions.StandardErrorListing != null)
|
||||||
|
{
|
||||||
|
process.ErrorDataReceived += (s, e) =>
|
||||||
|
{
|
||||||
|
if (e.Data != null)
|
||||||
|
{
|
||||||
|
runOptions.StandardErrorListing.Add(e.Data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
process.BeginErrorReadLine();
|
||||||
|
}
|
||||||
if (runOptions.TimeOut == 0)
|
if (runOptions.TimeOut == 0)
|
||||||
{
|
{
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
@@ -202,3 +218,23 @@ public void KillProcessTree(Process process)
|
|||||||
process.Kill();
|
process.Kill();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DotnetPack(string outputFolder, string projectFolder, string project) {
|
||||||
|
var runLog = new List<string>();
|
||||||
|
var errorLog = new List<string>();
|
||||||
|
var logPath = System.IO.Path.Combine(logFolder, $"{project}-pack.log");
|
||||||
|
Information($"Packaging {projectFolder}");
|
||||||
|
try {
|
||||||
|
Run(dotnetcli, $"pack --configuration {configuration} --output {outputFolder} \"{projectFolder}\"",
|
||||||
|
new RunOptions
|
||||||
|
{
|
||||||
|
StandardOutputListing = runLog,
|
||||||
|
StandardErrorListing = errorLog
|
||||||
|
})
|
||||||
|
.ExceptionOnError($"Packaging {project} failed. See {logPath} for details.");
|
||||||
|
} catch(Exception) {
|
||||||
|
System.IO.File.WriteAllLines(logPath, runLog.ToArray());
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
System.IO.File.WriteAllLines(logPath, runLog.ToArray());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user