diff --git a/cake/ApaxCmd.cs b/cake/ApaxCmd.cs index 99b827c23..7e1278a32 100644 --- a/cake/ApaxCmd.cs +++ b/cake/ApaxCmd.cs @@ -27,6 +27,21 @@ public static class ApaxCmd { + + public static void ApaxSelfUpdate(this BuildContext context, string version) + { + var apaxArguments = $"self-update {version}"; + + context.Log.Information($"apax self-update to version '{version}'"); + context.ProcessRunner.Start(Helpers.GetApaxCommand(), new ProcessSettings() + { + Arguments = apaxArguments, + RedirectStandardOutput = false, + RedirectStandardError = false, + Silent = false + }).WaitForExit(); + } + public static void ApaxInstall(this BuildContext context, IEnumerable folders) { foreach (var folder in folders) diff --git a/cake/Program.cs b/cake/Program.cs index b151b0a93..548f57dac 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -122,6 +122,10 @@ public override void Run(BuildContext context) { context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); } + + // with this we will enforce use of specific apax version at least temporarily + // due to issues with apax versions in some environments. + context.ApaxSelfUpdate("4.0.0"); } private static void ProvisionTools(BuildContext context) @@ -172,11 +176,13 @@ public override void Run(BuildContext context) if (context.BuildParameters.DoPack) { + var apaxFiles = new List(); + context.Log.Information("Collecting .apax files."); + ApaxTraversal.CollectApaxFileInfoRecursively(context.RootDir, new List() { ".apax", "traversals" }, apaxFiles); + context.Libraries.ToList().ForEach(lib => { - //foreach (var apaxfile in context.GetApaxFiles(lib)) - var apaxFiles = new List(); - ApaxTraversal.CollectApaxFileInfoRecursively(context.RootDir, new List() { ".apax", "traversals" }, apaxFiles); + //foreach (var apaxfile in context.GetApaxFiles(lib)) foreach (var apaxfile in apaxFiles) { context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); @@ -188,9 +194,10 @@ public override void Run(BuildContext context) // context.DotnetIxr(context.Libraries.Where(p => p.pack && Directory.Exists(Path.Combine(context.RootDir, p.folder, "ctrl", "src"))).Select(p => Path.Combine(context.RootDir, p.folder, "ctrl"))); var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); - if (!context.BuildParameters.NoBuild) + if (!context.BuildParameters.NoBuild || context.BuildParameters.DoPack) { var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); + context.Log.Information("Creating apax traversal."); context.CreateApaxTraversal(context.RootDir, traversalProject); context.ApaxInstall(new[] { traversalProjectFolder }); context.DotnetIxc(new[] { traversalProjectFolder }); @@ -205,10 +212,16 @@ public override void Run(BuildContext context) if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) { + context.Log.Information("Creating apax traversal."); context.ApaxBuild(new[] { traversalProjectFolder }); } + // Clean up travversal files after build remove apax.yml and .apax folder + context.DeleteFile(Path.Combine(traversalProjectFolder, "apax.yml")); + + //System.IO.Directory.Delete(Path.Combine(traversalProjectFolder, ".apax"), true); + } } @@ -480,8 +493,7 @@ private static void PackApax(BuildContext context) context.ApaxInstall(context.GetLibraryAxFolders(lib)); context.ApaxBuild(context.GetLibraryAxFolders(lib)); context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - System.Threading.Thread.Sleep(10000); + context.ApaxCopyArtifacts(lib); }); } @@ -496,8 +508,7 @@ private static void PackApax(BuildContext context) context.ApaxInstall(context.GetLibraryAxFolders(lib)); context.ApaxBuild(context.GetLibraryAxFolders(lib)); context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - System.Threading.Thread.Sleep(10000); + context.ApaxCopyArtifacts(lib); }); } } diff --git a/src/core/ctrl/apax.yml b/src/core/ctrl/apax.yml index 6575769de..d3c3728f6 100644 --- a/src/core/ctrl/apax.yml +++ b/src/core/ctrl/apax.yml @@ -10,6 +10,8 @@ files: # APAX_BUILD_ARGS: [ -d ] registries: "@inxton": "https://npm.pkg.github.com/" +catalogs: + "@inxton/ax.catalog": 0.0.40 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: