build/Settings.cs (130 lines of code) (raw):
using System.Collections.Generic;
using System.IO;
using static Build.BasePath;
namespace Build
{
public static class Settings
{
public static string basePath = path;
public static readonly string SourcePath = Path.GetFullPath(basePath + "/src/Microsoft.Azure.Functions.ExtensionBundle/");
public static readonly string BuildPath = Path.Combine(Path.GetFullPath(basePath), "build");
public static string ExtensionsJsonFilePath => Path.Combine(SourcePath, ExtensionsJsonFileName);
public static string BundleConfigJsonFilePath => Path.Combine(SourcePath, BundleConfigJsonFileName);
public static string[] nugetFeed = new[]
{
"https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-net/nuget/v3/index.json",
"https://www.nuget.org/api/v2/"
};
public static Dictionary<string, string> nugetSources = new Dictionary<string, string>()
{
{ "azureSdk", "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-net/nuget/v3/index.json"},
{ "nuget", "https://www.nuget.org/api/v2/"}
};
public static readonly string StaticContentDirectoryName = "StaticContent";
public static readonly string RootBinDirectory = Path.Combine(Path.GetFullPath(basePath), "bin");
public static readonly string RootBuildDirectory = Path.Combine(Path.GetFullPath(basePath), "build_temp");
public static readonly string ArtifactsDirectory = Path.Combine(Path.GetFullPath(basePath), "artifacts");
public static readonly string TemplatesArtifactsDirectory = Path.Combine(Path.GetFullPath(basePath), "templatesArtifacts");
public static readonly string ToolsDirectory = Path.Combine(Path.GetFullPath(basePath), "tools");
public static readonly string TemplatesV1RootDirectory = Path.Combine(RootBinDirectory, StaticContentDirectoryName, "v1");
public static readonly string StaticContentDirectoryPath = Path.Combine(RootBinDirectory, StaticContentDirectoryName);
public static readonly string TemplatesJsonFilePath = Path.Combine(TemplatesV1RootDirectory, "templates", "templates.json");
public static readonly string ResourcesFilePath = Path.Combine(TemplatesV1RootDirectory, "resources", "Resources.json");
public static readonly string ResourcesEnUSFilePath = Path.Combine(TemplatesV1RootDirectory, "resources", "Resources.en-US.json");
public static readonly string TemplatesV2RootDirectory = Path.Combine(RootBinDirectory, StaticContentDirectoryName, "v2");
public static readonly string TemplatesV2Directory = Path.Combine(TemplatesV1RootDirectory, "templates-v2");
public static readonly string ResourcesV2Directory = Path.Combine(TemplatesV1RootDirectory, "resources-v2");
public static readonly string BindingsV2Directory = Path.Combine(TemplatesV1RootDirectory, "bindings-v2");
public static readonly string ExtensionsJsonFileName = "extensions.json";
public static readonly string BundleConfigJsonFileName = "bundleConfig.json";
public static string ExtensionBundleVersionRange = "[3.*, 4.0.0)";
public static readonly string NugetConfigFileName = "NuGet.Config";
public static readonly string RUPackagePath = Path.Combine(RootBinDirectory, $"{BundleConfiguration.Instance.ExtensionBundleId}.{BundleConfiguration.Instance.ExtensionBundleVersion}_RU_package", BundleConfiguration.Instance.ExtensionBundleVersion);
public static readonly string IndexFileName = "index.json";
public static List<IndexFileV2Metadata> IndexFiles = new List<IndexFileV2Metadata>()
{
new IndexFileV2Metadata("https://cdn-staging.functions.azure.com", BundleConfiguration.Instance.ExtensionBundleId, "cdnStaging"),
new IndexFileV2Metadata("https://cdn.functions.azure.com", BundleConfiguration.Instance.ExtensionBundleId, "cdnProd")
};
public static List<BuildConfiguration> WindowsBuildConfigurations = new List<BuildConfiguration>()
{
new BuildConfiguration()
{
ConfigId = ConfigId.win_x86,
SourceProjectFileName = "extensions.csproj",
RuntimeIdentifier = "win-x86",
PublishReadyToRun = true,
PublishBinDirectorySubPath = Path.Combine("bin_v3", "win-x86")
},
new BuildConfiguration()
{
ConfigId = ConfigId.win_x64,
SourceProjectFileName = "extensions.csproj",
RuntimeIdentifier = "win-x64",
PublishReadyToRun = true,
PublishBinDirectorySubPath = Path.Combine("bin_v3", "win-x64")
},
new BuildConfiguration()
{
ConfigId = ConfigId.any_any,
SourceProjectFileName = "extensions.csproj",
RuntimeIdentifier = "any",
PublishReadyToRun = false,
PublishBinDirectorySubPath = "bin"
}
};
public static List<BuildConfiguration> LinuxBuildConfigurations = new List<BuildConfiguration>()
{
new BuildConfiguration()
{
ConfigId = ConfigId.linux_x64,
SourceProjectFileName = "extensions.csproj",
RuntimeIdentifier = "linux-x64",
PublishReadyToRun = true,
PublishBinDirectorySubPath = Path.Combine("bin_v3", "linux-x64")
}
};
public enum ConfigId
{
win_x86,
win_x64,
any_any,
linux_x64
}
public static BundlePackageConfiguration BundlePackageNetCoreV3Any = new BundlePackageConfiguration()
{
PackageIdentifier = "any-any",
ConfigBinariesToInclude = new List<ConfigId>() {
ConfigId.any_any
},
CsProjFilePath = Path.Combine(RootBuildDirectory, ConfigId.any_any.ToString(), "extensions.csproj")
};
public static BundlePackageConfiguration BundlePackageNetCoreWindows = new BundlePackageConfiguration()
{
PackageIdentifier = "win-any",
ConfigBinariesToInclude = new List<ConfigId>() {
ConfigId.any_any,
ConfigId.win_x86,
ConfigId.win_x64
},
CsProjFilePath = Path.Combine(RootBuildDirectory, ConfigId.any_any.ToString(), "extensions.csproj")
};
public static BundlePackageConfiguration BundlePackageNetCoreV3Linux = new BundlePackageConfiguration()
{
PackageIdentifier = "linux-x64",
ConfigBinariesToInclude = new List<ConfigId>() {
ConfigId.any_any,
ConfigId.linux_x64
},
CsProjFilePath = Path.Combine(RootBuildDirectory, ConfigId.any_any.ToString(), "extensions.csproj")
};
public static BundlePackageConfiguration BundlePackageNetCoreV3 = new BundlePackageConfiguration()
{
PackageIdentifier = string.Empty,
ConfigBinariesToInclude = new List<ConfigId>() {
ConfigId.any_any
},
CsProjFilePath = Path.Combine(RootBuildDirectory, ConfigId.any_any.ToString(), "extensions.csproj")
};
}
}