Skip to content

Commit

Permalink
Merge pull request #49 from devlead/master
Browse files Browse the repository at this point in the history
Changed deploy to use Cake.Git & KuduSync
  • Loading branch information
gep13 committed Jan 8, 2017
2 parents 4bc6ea0 + 523e8cc commit b4c9dc3
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 16 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,4 +2,5 @@
[Tt]ools/*
![Tt]ools/packages.config
[Oo]utput/
[Pp]ublish/
nuget.exe
52 changes: 36 additions & 16 deletions build.cake
@@ -1,6 +1,9 @@
#tool nuget:?package=Wyam&prerelease
#tool nuget:?package=KuduSync.NET
#addin nuget:?package=Cake.Wyam&prerelease
#addin nuget:?package=Cake.FileHelpers
#addin nuget:?package=Cake.Git
#addin nuget:?package=Cake.Kudu

//////////////////////////////////////////////////////////////////////
// ARGUMENTS
Expand All @@ -18,7 +21,11 @@ var isRunningOnWindows = IsRunningOnWindows();
var isRunningOnAppVeyor = AppVeyor.IsRunningOnAppVeyor;
var isPullRequest = AppVeyor.Environment.PullRequest.IsPullRequest;
var accessToken = EnvironmentVariable("access_token");
var deployRemote = EnvironmentVariable("git_deploy_remote");
var deployBranch = EnvironmentVariable("git_deploy_branch");
var userProfileFolder = Directory(EnvironmentVariable("USERPROFILE"));
var outputPath = MakeAbsolute(Directory("./Output"));
var wyamPath = MakeAbsolute(Directory("./Wyam"));

//////////////////////////////////////////////////////////////////////
// TASKS
Expand All @@ -28,8 +35,8 @@ Task("Clean")
.WithCriteria(isRunningOnAppVeyor)
.Does(() =>
{
EnsureDirectoryExists("./../Output");
EnsureDirectoryExists("./../Wyam");
EnsureDirectoryExists(outputPath);
EnsureDirectoryExists(wyamPath);
});

Task("Build")
Expand All @@ -40,28 +47,41 @@ Task("Build")
{
Recipe = "Blog",
Theme = "CleanBlog",
OutputPath = isRunningOnAppVeyor ? "../Output" : null
OutputPath = outputPath
});
});

Task("Deploy")
.WithCriteria(isRunningOnAppVeyor)
.WithCriteria(!string.IsNullOrEmpty(accessToken))
.WithCriteria(!string.IsNullOrEmpty(deployRemote))
.WithCriteria(!string.IsNullOrEmpty(deployBranch))
.IsDependentOn("Build")
.Does(() =>
{
RunCommand("git", "config --global credential.helper store");
RunCommand("git", "config --global user.email \"gep13@gep13.co.uk\"");
RunCommand("git", "config --global user.name \"Gary Ewan Park\"");
FileAppendText(((DirectoryPath)userProfileFolder).CombineWithFilePath(".git-credentials"), string.Format("https://{0}:x-oauth-basic@github.com{1}", accessToken, Environment.NewLine));
RunCommand("git", "checkout gh-pages");
RunCommand("git", "rm -rf .");
CopyFiles(".*", "../Output");
RunCommand("echo", "www.gep13.co.uk > CNAME");
RunCommand("git", "remote set-url origin https://github.com/gep13/gep13.github.io.git");
RunCommand("git", "add -A");
RunCommand("git", "commit -a -m \"Commit from AppVeyor\"");
RunCommand("git", "push");
var sourceCommit = GitLogTip("./");
var publishFolder = MakeAbsolute(Directory("publish")).Combine(DateTime.Now.ToString("yyyyMMdd_HHmmss"));
Information("Getting publish branch...");
GitClone(deployRemote, publishFolder, new GitCloneSettings{ BranchName = deployBranch });
Information("Sync output files...");
Kudu.Sync(outputPath, publishFolder, new KuduSyncSettings {
ArgumentCustomization = args=>args.Append("--ignore").AppendQuoted(".git;CNAME")
});
Information("Stage all changes...");
GitAddAll(publishFolder);
Information("Commit all changes...");
GitCommit(
publishFolder,
sourceCommit.Committer.Name,
sourceCommit.Committer.Email,
string.Format("AppVeyor Publish: {0}\r\n{1}", sourceCommit.Sha, sourceCommit.Message)
);
Information("Pushing all changes...");
GitPush(publishFolder, accessToken, "x-oauth-basic", deployBranch);
});

Task("Preview")
Expand All @@ -84,7 +104,7 @@ Task("Default")
.IsDependentOn("Preview");

Task("AppVeyor")
.IsDependentOn("Deploy");
.IsDependentOn(isPullRequest ? "Build" : "Deploy");

//////////////////////////////////////////////////////////////////////
// HELPER METHODS
Expand Down

0 comments on commit b4c9dc3

Please sign in to comment.