Exemplo n.º 1
0
        public OryxArguments()
        {
            RunOryxBuild = false;

            string framework  = System.Environment.GetEnvironmentVariable("FRAMEWORK");
            string version    = System.Environment.GetEnvironmentVariable("FRAMEWORK_VERSION");
            string buildFlags = System.Environment.GetEnvironmentVariable("BUILD_FLAGS");

            if (string.IsNullOrEmpty(framework) ||
                string.IsNullOrEmpty(version))
            {
                return;
            }

            Language = SupportedFrameworks.ParseLanguage(framework);
            if (Language == Framework.None)
            {
                return;
            }

            RunOryxBuild = true;
            Version      = version;

            // Parse Build Flags
            Flags = BuildFlagsHelper.Parse(buildFlags);

            // Set language specific
            SetLanguageOptions();
        }
Exemplo n.º 2
0
        private void SetLanguageOptions()
        {
            switch (Language)
            {
            case Framework.None:
                return;

            case Framework.Python:
                SetVirtualEnvironment();
                return;

            case Framework.DotNETCore:
                return;

            case Framework.NodeJs:
                // For node, enable compress option by default
                if (Flags == BuildOptimizationsFlags.None)
                {
                    Flags = BuildOptimizationsFlags.CompressModules;
                }

                return;

            case Framework.PHP:
                return;
            }
        }
Exemplo n.º 3
0
        public static BuildOptimizationsFlags Parse(string value, BuildOptimizationsFlags defaultVal = BuildOptimizationsFlags.None)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(defaultVal);
            }

            try
            {
                var result = (BuildOptimizationsFlags)Enum.Parse(typeof(BuildOptimizationsFlags), value);
                return(result);
            }
            catch (Exception)
            {
                return(defaultVal);
            }
        }
Exemplo n.º 4
0
        public void ArgumentPropertyTest(string language, string version,
                                         bool expectedRunOryxBuild, bool expectedSkipKuduSync, BuildOptimizationsFlags expectedFlags)
        {
            var mockedEnvironment = new Dictionary <string, string>()
            {
                { "FRAMEWORK", language },
                { "FRAMEWORK_VERSION", version }
            };

            using (new TestScopedEnvironmentVariable(mockedEnvironment))
            {
                IOryxArguments args = new AppServiceOryxArguments();
                Assert.Equal(expectedRunOryxBuild, args.RunOryxBuild);
                Assert.Equal(expectedSkipKuduSync, args.SkipKuduSync);
                Assert.Equal(expectedFlags, args.Flags);
            }
        }
Exemplo n.º 5
0
        private void AddBuildOptimizationFlags(StringBuilder args, DeploymentContext context, BuildOptimizationsFlags optimizationFlags)
        {
            switch (Flags)
            {
            // By default, we always want to use the temp directory path
            // However, it's good to have an off option here.
            // Ideally, we would always use ExpressBuild, as that also performs run from package
            case BuildOptimizationsFlags.Off:
                break;

            case BuildOptimizationsFlags.None:
            case BuildOptimizationsFlags.CompressModules:
            case BuildOptimizationsFlags.UseExpressBuild:
                OryxArgumentsHelper.AddTempDirectoryOption(args, context.BuildTempPath);
                break;
            }
        }
        public void ArgumentPropertyTest(string functions_worker_runtime,
                                         bool expectedRunOryxBuild, bool expectedSkipKuduSync, BuildOptimizationsFlags expectedFlags)
        {
            var mockedEnvironment = new Dictionary <string, string>()
            {
                { "FUNCTIONS_WORKER_RUNTIME", functions_worker_runtime },
            };

            using (new TestScopedEnvironmentVariable(mockedEnvironment))
            {
                IOryxArguments args = new FunctionAppOryxArguments();
                Assert.Equal(expectedRunOryxBuild, args.RunOryxBuild);
                Assert.Equal(expectedSkipKuduSync, args.SkipKuduSync);
                Assert.Equal(expectedFlags, args.Flags);
            }
        }