Skip to content

Commit 135621d

Browse files
authored
Merge pull request dotnet-script#261 from filipw/bugfix/globaltool
feature/netcoreapp2.1
2 parents 5efdb2c + b58377d commit 135621d

File tree

14 files changed

+294
-135
lines changed

14 files changed

+294
-135
lines changed

.travis.yml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
language: csharp
2-
dotnet: 2.0.0
2+
dotnet: 2.1.300-preview2-008533
33
env:
44
global:
55
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
@@ -10,11 +10,21 @@ matrix:
1010
include:
1111
- os: linux
1212
dist: trusty
13-
sudo: false
13+
sudo: required
14+
install:
15+
- curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
16+
- sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
17+
- sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
18+
- sudo apt-get update
19+
- sudo apt-get install dotnet-sdk-2.0.3
1420
- os: osx
15-
osx_image: xcode9
16-
sudo: required
17-
script:
18-
- ulimit -n8192
21+
osx_image: xcode9
22+
sudo: required
23+
install:
24+
- ulimit -n8192
25+
- sudo curl -L https://download.microsoft.com/download/5/D/F/5DF4B836-7DFD-4CCF-AC96-101E2A4C7421/dotnet-sdk-2.1.2-osx-x64.pkg -o dotnet-sdk.pkg
26+
- sudo installer -pkg dotnet-sdk.pkg -target /
27+
- dotnet --info
28+
script:
1929
- chmod +x build.sh
20-
- ./build.sh
30+
- ./build.sh

appveyor.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ version: 1.0.{build}
22
image: Visual Studio 2017
33

44
install:
5+
- ps: iwr https://raw.githubusercontent.com/dotnet/cli/release/2.1.3xx/scripts/obtain/dotnet-install.ps1 -outfile dotnet-install.ps1
6+
- ps: .\dotnet-install.ps1 -Version 2.1.300-preview2-008530 -InstallDir $env:ProgramFiles/dotnet
57
- cmd: choco install dotnet.script
68

79
build_script:

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ if [ ! -d "$DOTNET_SCRIPT" ]; then
1212
exit 1
1313
fi
1414
fi
15-
dotnet "$DOTNET_SCRIPT/dotnet-script.dll" "$SCRIPT_DIR/build/Build.csx" -- "$SCRIPT_DIR"
15+
dotnet "$DOTNET_SCRIPT/dotnet-script.dll" "$SCRIPT_DIR/build/Build.csx" "--debug" -- "$SCRIPT_DIR"

build/Build.csx

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,48 @@
11
#! "netcoreapp2.0"
2-
#load "nuget:Dotnet.Build, 0.2.9"
2+
#load "nuget:Dotnet.Build, 0.3.1"
33
#load "nuget:github-changelog, 0.1.4"
44
#load "Choco.csx"
55
#load "BuildContext.csx"
66

77
using static ReleaseManagement;
88
using static ChangeLog;
99
using static FileUtils;
10+
using System.Xml.Linq;
11+
12+
1013

1114
DotNet.Build(DotnetScriptProjectFolder);
1215
DotNet.Test(TestProjectFolder);
13-
DotNet.Publish(DotnetScriptProjectFolder, PublishArtifactsFolder);
16+
DotNet.Publish(DotnetScriptProjectFolder, PublishArtifactsFolder, NetCoreApp20);
1417

1518
// We only publish packages from Windows/AppVeyor
1619
if (BuildEnvironment.IsWindows)
17-
{
18-
NuGet.PackAsTool(DotnetScriptProjectFolder,PublishArtifactsFolder,NuGetArtifactsFolder);
19-
DotNet.Pack(DotnetScriptProjectFolder, NuGetArtifactsFolder);
20+
{
21+
22+
using(var globalToolBuildFolder = new DisposableFolder())
23+
{
24+
Copy(SolutionFolder, globalToolBuildFolder.Path);
25+
PatchTargetFramework(globalToolBuildFolder.Path, NetCoreApp21);
26+
PatchPackAsTool(globalToolBuildFolder.Path);
27+
PatchPackageId(globalToolBuildFolder.Path, GlobalToolPackageId);
28+
PatchContent(globalToolBuildFolder.Path);
29+
DotNet.Pack(Path.Combine(globalToolBuildFolder.Path,"Dotnet.Script"),NuGetArtifactsFolder);
30+
}
31+
32+
using(var nugetPackageBuildFolder = new DisposableFolder())
33+
{
34+
Copy(SolutionFolder, nugetPackageBuildFolder.Path);
35+
PatchTargetFramework(nugetPackageBuildFolder.Path, NetCoreApp20);
36+
DotNet.Pack(Path.Combine(nugetPackageBuildFolder.Path,"Dotnet.Script"),NuGetArtifactsFolder);
37+
}
38+
2039
DotNet.Pack(DotnetScriptCoreProjectFolder, NuGetArtifactsFolder);
2140
DotNet.Pack(DotnetScriptDependencyModelProjectFolder, NuGetArtifactsFolder);
2241
DotNet.Pack(DotnetScriptDependencyModelNuGetProjectFolder, NuGetArtifactsFolder);
42+
2343
Choco.Pack(DotnetScriptProjectFolder, PublishArtifactsFolder, ChocolateyArtifactsFolder);
2444
Zip(PublishArchiveFolder, PathToGitHubReleaseAsset);
25-
45+
2646
if (BuildEnvironment.IsSecure)
2747
{
2848
await CreateReleaseNotes();
@@ -48,3 +68,42 @@ private async Task CreateReleaseNotes()
4868
}
4969
await generator.Generate(PathToReleaseNotes);
5070
}
71+
72+
private void PatchTargetFramework(string solutionFolder, string targetFramework)
73+
{
74+
var pathToDotnetScriptProject = Path.Combine(solutionFolder,"Dotnet.Script","Dotnet.Script.csproj");
75+
var projectFile = XDocument.Load(pathToDotnetScriptProject);
76+
var targetFrameworksElement = projectFile.Descendants("TargetFrameworks").Single();
77+
targetFrameworksElement.ReplaceWith(new XElement("TargetFramework",targetFramework));
78+
projectFile.Save(pathToDotnetScriptProject);
79+
}
80+
81+
private void PatchPackAsTool(string solutionFolder)
82+
{
83+
var pathToDotnetScriptProject = Path.Combine(solutionFolder,"Dotnet.Script","Dotnet.Script.csproj");
84+
var projectFile = XDocument.Load(pathToDotnetScriptProject);
85+
var packAsToolElement = projectFile.Descendants("PackAsTool").Single();
86+
packAsToolElement.Value = "true";
87+
projectFile.Save(pathToDotnetScriptProject);
88+
}
89+
90+
private void PatchPackageId(string solutionFolder, string packageId)
91+
{
92+
var pathToDotnetScriptProject = Path.Combine(solutionFolder,"Dotnet.Script","Dotnet.Script.csproj");
93+
var projectFile = XDocument.Load(pathToDotnetScriptProject);
94+
var packAsToolElement = projectFile.Descendants("PackageId").Single();
95+
packAsToolElement.Value = packageId;
96+
projectFile.Save(pathToDotnetScriptProject);
97+
}
98+
99+
private void PatchContent(string solutionFolder)
100+
{
101+
var pathToDotnetScriptProject = Path.Combine(solutionFolder,"Dotnet.Script","Dotnet.Script.csproj");
102+
var projectFile = XDocument.Load(pathToDotnetScriptProject);
103+
var contentElements = projectFile.Descendants("Content").ToArray();
104+
foreach (var contentElement in contentElements)
105+
{
106+
contentElement.Remove();
107+
}
108+
projectFile.Save(pathToDotnetScriptProject);
109+
}

build/BuildContext.csx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
#load "nuget:Dotnet.Build, 0.2.9"
1+
#load "nuget:Dotnet.Build, 0.3.1"
22
using static FileUtils;
33
using System.Xml.Linq;
44

5+
const string NetCoreApp20 = "netcoreapp2.0";
6+
7+
const string NetCoreApp21 = "netcoreapp2.1";
8+
9+
const string GlobalToolPackageId = "dotnet-script";
10+
511
string Version;
612

713
string GitHubArtifactsFolder;
@@ -18,6 +24,8 @@ string PublishArtifactsFolder;
1824

1925
string PublishArchiveFolder;
2026

27+
string SolutionFolder;
28+
2129
string DotnetScriptProjectFolder;
2230

2331
string DotnetScriptCoreProjectFolder;
@@ -41,7 +49,7 @@ string ProjectName;
4149
Owner = "filipw";
4250
ProjectName = "dotnet-script";
4351
Root = FileUtils.GetScriptFolder();
44-
52+
SolutionFolder = Path.Combine(Root,"..","src");
4553
DotnetScriptProjectFolder = Path.Combine(Root, "..", "src", "Dotnet.Script");
4654
DotnetScriptCoreProjectFolder = Path.Combine(Root, "..", "src", "Dotnet.Script.Core");
4755
DotnetScriptDependencyModelProjectFolder = Path.Combine(Root, "..", "src", "Dotnet.Script.DependencyModel");

build/Choco.csx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#load "nuget:Dotnet.Build, 0.2.9"
1+
#load "nuget:Dotnet.Build, 0.3.1"
22

33
using System.Xml.Linq;
44

src/Dotnet.Script.Core/Dotnet.Script.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Description>A cross platform library allowing you to run C# (CSX) scripts from a project.json dependency definition file and with support for debugging. Based on Roslyn.</Description>
5-
<VersionPrefix>0.21.0</VersionPrefix>
5+
<VersionPrefix>0.22.0</VersionPrefix>
66
<Authors>filipw</Authors>
77
<TargetFramework>netstandard2.0</TargetFramework>
88
<AssemblyName>Dotnet.Script.Core</AssemblyName>

src/Dotnet.Script.Core/Internal/ScriptExtensions.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ namespace Dotnet.Script.Core.Internal
99
{
1010
internal static class ScriptExtensions
1111
{
12-
public static IEnumerable<Diagnostic> GetDiagnostics<T>(this Script<T> script, IEnumerable<string> suppressedDiagnosticIds)
12+
public static IEnumerable<Diagnostic> GetDiagnostics<T>(this Script<T> script)
1313
{
1414
var compilation = script.GetCompilation();
15-
var diagnostics = compilation.GetDiagnostics().Where(d => !suppressedDiagnosticIds.Contains(d.Id));
16-
var orderedDiagnostics = diagnostics.OrderBy((d1, d2) =>
15+
var orderedDiagnostics = compilation.GetDiagnostics().OrderBy((d1, d2) =>
1716
{
1817
var severityDiff = (int)d2.Severity - (int)d1.Severity;
1918
return severityDiff != 0 ? severityDiff : d1.Location.SourceSpan.Start - d2.Location.SourceSpan.Start;

0 commit comments

Comments
 (0)