Example #1
0
 DotNetBuildSettings SonarBuildAll(DotNetBuildSettings settings) =>
 settings
 .SetProjectFile(SonarSolutionFile)
 .SetNoRestore(true)
 .SetConfiguration(Debug)
 .SetProcessWorkingDirectory(RootDirectory);
Example #2
0
    public static int Main(string[] args) => BuildRunner.Execute(args, build =>
    {
        var codegen = "fsdgenpython";

        var dotNetBuildSettings = new DotNetBuildSettings
        {
            NuGetApiKey  = Environment.GetEnvironmentVariable("NUGET_API_KEY"),
            DocsSettings = new DotNetDocsSettings
            {
                GitLogin       = new GitLoginInfo("FacilityApiBot", Environment.GetEnvironmentVariable("BUILD_BOT_PASSWORD") ?? ""),
                GitAuthor      = new GitAuthorInfo("FacilityApiBot", "*****@*****.**"),
                SourceCodeUrl  = "https://github.com/FacilityApi/FacilityPython/tree/master/src",
                ProjectHasDocs = name => !name.StartsWith("fsdgen", StringComparison.Ordinal),
            },
            Verbosity     = DotNetBuildVerbosity.Minimal,
            CleanSettings = new DotNetCleanSettings
            {
                FindDirectoriesToDelete = () => s_directoriesToDelete,
            },
        };

        build.AddDotNetTargets(dotNetBuildSettings);

        build.Target("codegen")
        .DependsOn("build")
        .Describe("Generates code from the FSD")
        .Does(() => CodeGen(verify: false));

        build.Target("verify-codegen")
        .DependsOn("build")
        .Describe("Ensures the generated code is up-to-date")
        .Does(() => CodeGen(verify: true));

        build.Target("test")
        .DependsOn("verify-codegen");

        build.Target("pip")
        .DependsOn("clean")
        .DependsOn("verify-codegen")
        .Describe("Creates a pip package")
        .Does(() => CreatePipPackage());

        build.Target("pip-publish")
        .DependsOn("pip")
        .Describe("Publishes a pip package")
        .Does(() => PublishPipPackage());

        build.Target("try-pip-publish")
        .DependsOn("pip")
        .Describe("Publishes a pip package. Ignores failure.")
        .Does(() => PublishPipPackage(ignoreFailure: true));

        void CodeGen(bool verify)
        {
            var configuration = dotNetBuildSettings !.BuildOptions !.ConfigurationOption !.Value;
            var toolPath      = FindFiles($"src/{codegen}/bin/{configuration}/netcoreapp3.1/{codegen}.dll").FirstOrDefault();

            var verifyOption = verify ? "--verify" : null;

            RunDotNet("tool", "restore");
            RunDotNet("tool", "run", "FacilityConformance", "fsd", "--output", "conformance/ConformanceApi.fsd", verifyOption);

            RunDotNet(toolPath, "conformance/ConformanceApi.fsd", "conformance/", "--newline", "lf", verifyOption);
        }
 public static DotNetBuildSettings SetTargetPlatform(this DotNetBuildSettings settings, MSBuildTargetPlatform platform)
 {
     return(platform is null
         ? settings
         : settings.SetProperty("Platform", GetTargetPlatform(platform)));
 }
Example #4
0
 DotNetBuildSettings WithGitVersion(DotNetBuildSettings settings) => GitVersion == null
         ? settings
         : settings
 .SetAssemblyVersion(GitVersion.AssemblySemVer)
 .SetFileVersion(GitVersion.AssemblySemFileVer)
 .SetInformationalVersion(GitVersion.InformationalVersion);
 public static DotNetBuildSettings SetTargetPlatformAnyCPU(this DotNetBuildSettings settings)
 => settings.SetTargetPlatform(MSBuildTargetPlatform.MSIL);
Example #6
0
 private static void GenerateDocs(DotNetBuildSettings dotNetBuildSettings, bool verify)
 {
     var configuration = dotNetBuildSettings.BuildOptions.ConfigurationOption.Value;
     var projects      = new[]
Example #7
0
 public static DotNetBuildSettings SetContinuousIntegrationBuild(this DotNetBuildSettings settings, bool value) =>
 settings.SetProcessArgumentConfigurator(a => a.Add($"/p:ContinuousIntegrationBuild={value.ToString().ToLower()}"));
Example #8
0
    public static int Main(string[] args) => BuildRunner.Execute(args, build =>
    {
        var conformanceVersion = "2.0.2";

        var codegen = "fsdgenaspnet";

        var dotNetTools = new DotNetTools(Path.Combine("tools", "bin")).AddSource(Path.Combine("tools", "bin"));

        var dotNetBuildSettings = new DotNetBuildSettings
        {
            NuGetApiKey  = Environment.GetEnvironmentVariable("NUGET_API_KEY"),
            DocsSettings = new DotNetDocsSettings
            {
                GitLogin       = new GitLoginInfo("FacilityApiBot", Environment.GetEnvironmentVariable("BUILD_BOT_PASSWORD") ?? ""),
                GitAuthor      = new GitAuthorInfo("FacilityApiBot", "*****@*****.**"),
                GitBranchName  = Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"),
                SourceCodeUrl  = "https://github.com/FacilityApi/FacilityAspNet/tree/master/src",
                ProjectHasDocs = name => !name.StartsWith("fsdgen", StringComparison.Ordinal),
            },
            DotNetTools        = dotNetTools,
            SourceLinkSettings = new SourceLinkSettings
            {
                ShouldTestPackage = name => !name.StartsWith("fsdgen", StringComparison.Ordinal),
            },
        };

        build.AddDotNetTargets(dotNetBuildSettings);

        build.Target("codegen")
        .DependsOn("build")
        .Describe("Generates code from the FSD")
        .Does(() => codeGen(verify: false));

        build.Target("verify-codegen")
        .DependsOn("build")
        .Describe("Ensures the generated code is up-to-date")
        .Does(() => codeGen(verify: true));

        build.Target("test")
        .DependsOn("verify-codegen");

        void codeGen(bool verify)
        {
            string verifyOption = verify ? "--verify" : null;

            var conformanceToolPath = dotNetTools.GetToolPath($"FacilityConformance/{conformanceVersion}");
            RunApp(conformanceToolPath, "fsd", "--output", "conformance/ConformanceApi.fsd", verifyOption);
            RunApp(conformanceToolPath, "json", "--output", "conformance/ConformanceTests.json", verifyOption);

            string configuration = dotNetBuildSettings.BuildOptions.ConfigurationOption.Value;
            string versionSuffix = $"cg{DateTime.UtcNow:yyyyMMddHHmmss}";
            RunDotNet("pack", Path.Combine("src", codegen, $"{codegen}.csproj"), "-c", configuration, "--no-build",
                      "--output", Path.GetFullPath(Path.Combine("tools", "bin")), "--version-suffix", versionSuffix);

            string packagePath     = FindFiles($"tools/bin/{codegen}.*-{versionSuffix}.nupkg").Single();
            string packageVersion  = Regex.Match(packagePath, @"[/\\][^/\\]*\.([0-9]+\.[0-9]+\.[0-9]+(-.+)?)\.nupkg$").Groups[1].Value;
            string codegenToolPath = dotNetTools.GetToolPath($"{codegen}/{packageVersion}");

            RunApp(codegenToolPath, "conformance/ConformanceApi.fsd", "conformance/WebApiControllerServer/Controllers",
                   "--namespace", "WebApiControllerServer.Controllers", "--newline", "lf", verifyOption);
            RunApp(codegenToolPath, "conformance/ConformanceApi.fsd", "conformance/CoreWebApiShimServer/Controllers",
                   "--namespace", "CoreWebApiShimServer.Controllers", "--target", "core", "--newline", "lf", verifyOption);
            RunApp(codegenToolPath, "conformance/ConformanceApi.fsd", "conformance/CoreControllerServer/Controllers",
                   "--namespace", "CoreControllerServer.Controllers", "--target", "core", "--newline", "lf", verifyOption);
        }
    });
Example #9
0
 public static DotNetBuildSettings SetMopRuntime(this DotNetBuildSettings s, string runtime)
 {
     return(string.IsNullOrEmpty(runtime) ?
            s : s.SetRuntime(runtime));
 }