Skip to content

Commit

Permalink
Merge branch 'release/0.2.0'
Browse files Browse the repository at this point in the history
* release/0.2.0:
  (#11) Add GitReleaaseManager template files
  (#11) Update GitReleaseManager configuration
  (#11) Update to latest GitReleaseManager
  (#10) Add support for build/sign of MSI
  (maint) Used consistent names/location for tasks
  (maint) Add more output information
  (#5) Removed hard coded file path
  (#9) Add support for Transifex
  (#8) Added ability to run GitReleaseManager
  (#7) Add GitHub Actions build provider
  (#6) Change name of CI Task
  (#2) Update to latest Cake.Recipe package
  • Loading branch information
gep13 committed Mar 4, 2022
2 parents 45c10b5 + 9d9c0bd commit 047a628
Show file tree
Hide file tree
Showing 32 changed files with 888 additions and 437 deletions.
4 changes: 2 additions & 2 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ image: Visual Studio 2019
# Build Script #
#---------------------------------#
build_script:
- ps: .\build.ps1 --target=AppVeyor
- ps: .\build.ps1 --target=CI

# Tests
test: off
Expand All @@ -24,4 +24,4 @@ branches:
# Build Cache #
#---------------------------------#
cache:
- tools -> build.ps1
- tools -> recipe.cake
12 changes: 12 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"cake.tool": {
"version": "0.38.5",
"commands": [
"dotnet-cake"
]
}
}
}
10 changes: 10 additions & 0 deletions .templates/default/create/footer.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{ if config.create.include_footer }}

### {{ config.create.footer_heading }}

{{ if config.create.milestone_replace_text
replace_milestone_title config.create.footer_content config.create.milestone_replace_text milestone.target.title
else
config.create.footer_content
end
end }}
10 changes: 10 additions & 0 deletions .templates/default/index.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{-
include 'release-info'
if milestone.target.description
include 'milestone'
end
include 'issues' | string.rstrip
if template_kind == "CREATE"
include 'create/footer'
end
~}}
5 changes: 5 additions & 0 deletions .templates/default/issue-details.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### {{ issue_label }}

{{ for issue in issues.items[issue_label]
include 'issue-note'
end }}
1 change: 1 addition & 0 deletions .templates/default/issue-note.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- {{ issue.title }} - see [#{{ issue.number }}]({{ issue.html_url }})
4 changes: 4 additions & 0 deletions .templates/default/issues.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

{{ for issue_label in issue_labels
include 'issue-details'
end }}
2 changes: 2 additions & 0 deletions .templates/default/milestone.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

{{ milestone.target.description }}
10 changes: 10 additions & 0 deletions .templates/default/release-info.sbn
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{
if issues.count > 0
if commits.count > 0
}}As part of this release we had [{{ commits.count }} {{ commits.count | string.pluralize "commit" "commits" }}]({{ commits.html_url }}) which resulted in [{{ issues.count }} {{ issues.count | string.pluralize "issue" "issues" }}]({{ milestone.target.html_url }}?closed=1) being closed.
{{ else
}}As part of this release we had [{{ issues.count }} {{ issues.count | string.pluralize "issue" "issues" }}]({{ milestone.target.html_url }}?closed=1) closed.
{{ end
else if commits.count > 0
}}As part of this release we had [{{ commits.count }} {{ commits.count | string.pluralize "commit" "commits" }}]({{ commits.html_url }}).
{{ end -}}
1 change: 1 addition & 0 deletions Chocolatey.Cake.Recipe/Content/addins.cake
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#addin nuget:?package=Cake.ReSharperReports&version=0.10.0
#addin nuget:?package=Cake.StrongNameSigner&version=0.1.0
#addin nuget:?package=Cake.StrongNameTool&version=0.0.5
#addin nuget:?package=Cake.Transifex&version=1.0.1
#addin nuget:?package=MagicChunks&version=2.0.0.119

// TODO: Conditionally decide whether to install packages or not
Expand Down
51 changes: 48 additions & 3 deletions Chocolatey.Cake.Recipe/Content/build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,32 @@ public void CopyBuildOutput()
}
}

BuildParameters.Tasks.BuildMsiTask = Task("Build-MSI")
.IsDependentOn("Sign-Assemblies")
.IsDependeeOf("Sign-Msis")
.WithCriteria(() => BuildParameters.ShouldBuildMsi, "Skipping because building of MSI has been disabled")
.Does(() => RequireTool(ToolSettings.MSBuildExtensionPackTool, () => {
Information("Building MSI from the following solution: {0}", BuildParameters.SolutionFilePath);

var msbuildSettings = new MSBuildSettings()
.SetPlatformTarget(PlatformTarget.x86)
.UseToolVersion(ToolSettings.BuildMSBuildToolVersion)
.WithProperty("TreatWarningsAsErrors", BuildParameters.TreatWarningsAsErrors.ToString())
.WithTarget("Build")
.SetMaxCpuCount(ToolSettings.MaxCpuCount)
.SetConfiguration("WIX")
.WithLogger(
Context.Tools.Resolve("MSBuild.ExtensionPack.Loggers.dll").FullPath,
"XmlFileLogger",
string.Format(
"logfile=\"{0}\";invalidCharReplacement=_;verbosity=Detailed;encoding=UTF-8",
BuildParameters.Paths.Directories.Build + "/MSBuild.msi.log")
);

MSBuild(BuildParameters.SolutionFilePath, msbuildSettings);
})
);

BuildParameters.Tasks.PackageTask = Task("Package");
BuildParameters.Tasks.DefaultTask = Task("Default")
.IsDependentOn("Package");
Expand All @@ -403,10 +429,11 @@ BuildParameters.Tasks.UploadArtifactsTask = Task("Upload-Artifacts")
}
});

BuildParameters.Tasks.ContinuousIntegrationTask = Task("ContinuousIntegration")
BuildParameters.Tasks.ContinuousIntegrationTask = Task("CI")
.IsDependentOn("Upload-Artifacts")
.IsDependentOn("Publish-PreRelease-Packages")
.IsDependentOn("Publish-Release-Packages")
.IsDependentOn("Publish-GitHub-Release")
.Finally(() =>
{
if (publishingError)
Expand All @@ -415,6 +442,12 @@ BuildParameters.Tasks.ContinuousIntegrationTask = Task("ContinuousIntegration")
}
});

BuildParameters.Tasks.ReleaseNotesTask = Task("ReleaseNotes")
.IsDependentOn("Create-Release-Notes");

BuildParameters.Tasks.LabelsTask = Task("Labels")
.IsDependentOn("Create-Default-Labels");

///////////////////////////////////////////////////////////////////////////////
// EXECUTION
///////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -468,19 +501,26 @@ public class Builder
BuildParameters.Tasks.CreateNuGetPackagesTask.IsDependentOn("Sign-PowerShellScripts");
BuildParameters.Tasks.CreateNuGetPackagesTask.IsDependentOn("Sign-Assemblies");
BuildParameters.Tasks.CreateChocolateyPackagesTask.IsDependentOn("Sign-PowerShellScripts");
BuildParameters.Tasks.CreateChocolateyPackagesTask.IsDependentOn("Sign-Msis");
BuildParameters.Tasks.SignMsisTask.IsDependentOn("Sign-Assemblies");
BuildParameters.Tasks.CreateChocolateyPackagesTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.ObfuscateAssembliesTask.IsDependeeOf("Sign-Assemblies");
BuildParameters.Tasks.StrongNameSignerTask.IsDependentOn(prefix + "Restore");
BuildParameters.Tasks.StrongNameSignerTask.IsDependeeOf(prefix + "Build");
BuildParameters.Tasks.ChangeStrongNameSignatures.IsDependentOn(prefix + "Restore");
BuildParameters.Tasks.ChangeStrongNameSignatures.IsDependeeOf(prefix + "Build");
BuildParameters.Tasks.ChangeStrongNameSignaturesTask.IsDependentOn(prefix + "Restore");
BuildParameters.Tasks.ChangeStrongNameSignaturesTask.IsDependeeOf(prefix + "Build");
BuildParameters.Tasks.ObfuscateAssembliesTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.InspectCodeTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.ConfigurationBuilderTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.TestTask.IsDependentOn(prefix + "Build");

if (!isDotNetCoreBuild)
{
if (BuildParameters.TransifexEnabled)
{
BuildParameters.Tasks.BuildTask.IsDependentOn("Transifex-Pull-Translations");
}

BuildParameters.Tasks.TestNUnitTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.TestxUnitTask.IsDependentOn(prefix + "Build");
BuildParameters.Tasks.TestTask.IsDependentOn("Test-NUnit");
Expand All @@ -493,6 +533,11 @@ public class Builder
}
else
{
if (BuildParameters.TransifexEnabled)
{
BuildParameters.Tasks.DotNetCoreBuildTask.IsDependentOn("Transifex-Pull-Translations");
}

BuildParameters.Tasks.PackageTask.IsDependentOn(prefix + "Pack");
BuildParameters.Tasks.GenerateLocalCoverageReportTask.IsDependentOn(prefix + "Test");
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-LocalCoverageReport");
Expand Down
19 changes: 19 additions & 0 deletions Chocolatey.Cake.Recipe/Content/buildProvider.cake
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,20 @@ public interface IBuildProvider

IBuildInfo Build { get; }

bool SupportsTokenlessCodecov { get; }

IEnumerable<string> PrintVariables { get; }

void UploadArtifact(FilePath file);

BuildProviderType Type { get; }
}

public enum BuildProviderType
{
TeamCity,
GitHubActions,
Local
}

public static IBuildProvider GetBuildProvider(ICakeContext context, BuildSystem buildSystem)
Expand All @@ -43,6 +56,12 @@ public static IBuildProvider GetBuildProvider(ICakeContext context, BuildSystem
return new TeamCityBuildProvider(buildSystem.TeamCity, context);
}

if (buildSystem.IsRunningOnGitHubActions)
{
context.Information("Using GitHub Action Provider...");
return new GitHubActionBuildProvider(context);
}

// always fallback to Local Build
context.Information("Using Local Build Provider...");
return new LocalBuildBuildProvider(context);
Expand Down
49 changes: 49 additions & 0 deletions Chocolatey.Cake.Recipe/Content/credentials.cake
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
public class GitHubCredentials
{
public string Token { get; private set; }

public GitHubCredentials(string token)
{
Token = token;
}
}

public class TransifexCredentials
{
public string ApiToken { get; private set; }

public bool HasCredentials
{
get { return !string.IsNullOrEmpty(ApiToken); }
}

public TransifexCredentials(string apiToken)
{
ApiToken = apiToken;
}
}

public class PackageSourceCredentials
{
public string ApiKey { get; private set; }
Expand All @@ -10,4 +35,28 @@ public class PackageSourceCredentials
User = user;
Password = password;
}
}

public static GitHubCredentials GetGitHubCredentials(ICakeContext context)
{
string token = null;
// if "GitHubTokenVariable" is not set, fallback to the gh-cli defaults of GH_TOKEN, GITHUB_TOKEN
var variableNames = new[]{ Environment.GitHubTokenVariable, "GH_TOKEN", "GITHUB_TOKEN" };
foreach (var name in variableNames)
{
token = context.EnvironmentVariable(name);
if (!string.IsNullOrEmpty(token))
{
break;
}
}

return new GitHubCredentials(token);
}

public static TransifexCredentials GetTransifexCredentials(ICakeContext context)
{
return new TransifexCredentials(
context.EnvironmentVariable(Environment.TransifexApiTokenVariable)
);
}
12 changes: 11 additions & 1 deletion Chocolatey.Cake.Recipe/Content/eazfuscator.cake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,17 @@ BuildParameters.Tasks.ObfuscateAssembliesTask = Task("Obfuscate-Assemblies")
settings.KeyFile = BuildParameters.StrongNameKeyPath;
}

settings.ToolPath = "./lib/Eazfuscator.NET/Eazfuscator.NET.exe";
var eazfuscatorToolLocation = Context.Tools.Resolve("Eazfuscator.NET.exe");

if (eazfuscatorToolLocation == null)
{
Warning("Couldn't resolve EazFuscator.NET.Exe tool, so using value from ToolSettings: {0}", ToolSettings.EazfuscatorToolLocation);
Context.Tools.RegisterFile(ToolSettings.EazfuscatorToolLocation);
}
else
{
Information("Using EazFuscator from: {0}", eazfuscatorToolLocation);
}

if (FileExists(msbuildPathFilePath))
{
Expand Down
8 changes: 7 additions & 1 deletion Chocolatey.Cake.Recipe/Content/environment.cake
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
public static class Environment
{
public static string DefaultPushSourceUrlVariable { get; private set; }
public static string GitHubTokenVariable { get; private set; }
public static string TransifexApiTokenVariable { get; private set; }

public static void SetVariableNames(
string defaultPushSourceUrlVariable = null)
string defaultPushSourceUrlVariable = null,
string gitHubTokenVariable = null,
string transifexApiTokenVariable = null)
{
DefaultPushSourceUrlVariable = defaultPushSourceUrlVariable ?? "NUGETDEV_SOURCE";
GitHubTokenVariable = gitHubTokenVariable ?? "GITHUB_PAT";
TransifexApiTokenVariable = transifexApiTokenVariable ?? "TRANSIFEX_API_TOKEN";
}
}
Loading

0 comments on commit 047a628

Please sign in to comment.