Exemple #1
0
        public void ShouldReadOnlyMatrixVariables()
        {
            const string yaml = @"
environment:
  matrix:
    - db: mysql
      password: mysql_password
    - db: sqlserver
      password:
        secure: sqlserver_secured_password
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.EnvironmentVariables.CommonVariables.Should().BeEmpty();
            conf.EnvironmentVariables.Should().BeEquivalentTo(
                new EnvironmentVariables(
                    null,
                    new List <ReadOnlyCollection <Variable> >
            {
                new ReadOnlyCollection <Variable>(new List <Variable>
                {
                    new Variable("db", "mysql", false),
                    new Variable("password", "mysql_password", false)
                }),
                new ReadOnlyCollection <Variable>(new List <Variable>
                {
                    new Variable("db", "sqlserver", false),
                    new Variable("password", "sqlserver_secured_password", true)
                })
            }));
        }
        public void ShouldReadBuildScriptAsAScriptBlockWithSplittedLinesScripts_AlternativeBlockStylePowershell()
        {
            const string yaml = @"
build_script:
  - ps: |-
      echo --------------------------------------------------------------------------------
      echo Build tinyformat
      mkdir build
      cd build
      cmake -G ""%COMPILER%"" ..
      cmake --build . --config %CONFIGURATION%
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            Assert.Single(conf.BuildScript);
            Assert.Equal("echo --------------------------------------------------------------------------------\n" +
                         "echo Build tinyformat\n" +
                         "mkdir build\n" +
                         "cd build\n" +
                         "cmake -G \"%COMPILER%\" ..\n" +
                         "cmake --build . --config %CONFIGURATION%",
                         conf.BuildScript[0].Script);
            Assert.Equal(ScriptType.PowerShell, conf.BuildScript[0].ScriptType);
        }
        public void Windows_ShouldReadBuildScriptAsAScriptBlockWithMultipleDifferentTypeScripts()
        {
            const string yaml = @"
build_script:
  # by default, all script lines are interpreted as batch
  - echo This is batch
  # to run script as a PowerShell command prepend it with ps:
  - ps: Write-Host 'This is PowerShell'
  # batch commands start from cmd:
  - cmd: echo This is batch again
  - cmd: set MY_VAR=12345
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            Assert.Equal(4, conf.BuildScript.Count);
            Assert.Equal("echo This is batch", conf.BuildScript[0].Script);
            Assert.Equal(ScriptType.Batch, conf.BuildScript[0].ScriptType);
            Assert.Equal("Write-Host 'This is PowerShell'", conf.BuildScript[1].Script);
            Assert.Equal(ScriptType.PowerShell, conf.BuildScript[1].ScriptType);
            Assert.Equal("echo This is batch again", conf.BuildScript[2].Script);
            Assert.Equal(ScriptType.Batch, conf.BuildScript[2].ScriptType);
            Assert.Equal("set MY_VAR=12345", conf.BuildScript[3].Script);
            Assert.Equal(ScriptType.Batch, conf.BuildScript[3].ScriptType);
        }
Exemple #4
0
        public void MatrixShouldHaveDefaultValuesWhenNotSpecified()
        {
            var conf = new BuildConfigurationYamlStringReader(string.Empty).GetBuildConfiguration();

            conf.Matrix.ShouldBeEquivalentTo(new Matrix());
            conf.Matrix.IsFastFinish.Should().BeFalse();
            conf.Matrix.AllowedFailures.Should().BeEmpty();
        }
Exemple #5
0
        public void ShouldReadNoEnvironmentButPropertiesShouldNotBeNullOnlyEmpty()
        {
            var conf = new BuildConfigurationYamlStringReader("").GetBuildConfiguration();

            conf.EnvironmentVariables.Should().NotBeNull();
            conf.EnvironmentVariables.CommonVariables.Should().BeEmpty();
            conf.EnvironmentVariables.Matrix.Should().BeEmpty();
        }
        public void ShouldGracefullyReadAnInvalidScriptBlock_AndMakeItAnEmptyScript()
        {
            const string yaml = @"
build_script: true;
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            Assert.Empty(conf.BuildScript);
        }
        public void ShouldBePatchFalseForAssemblyInfoWhenNotSpecified()
        {
            var conf = new BuildConfigurationYamlStringReader(string.Empty).GetBuildConfiguration();

            conf.AssemblyInfo.Should().BeEquivalentTo(new AssemblyInfo());
            conf.AssemblyInfo.Should().BeEquivalentTo(new AssemblyInfo(
                                                          false,
                                                          null,
                                                          null,
                                                          null,
                                                          null));
        }
Exemple #8
0
        public void MatrixShouldHaveFastFinishAsTrueAndEmptyAllowedFailures()
        {
            const string yaml = @"
matrix:
  fast_finish: true
";
            var          conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.Matrix.ShouldBeEquivalentTo(new Matrix(
                                                 true,
                                                 new AllowedJobFailureConditions[0]));
            conf.Matrix.IsFastFinish.Should().BeTrue();
            conf.Matrix.AllowedFailures.Should().BeEmpty();
        }
        public void ShouldExpandCloneFolderWithVersionAndBuildNumber()
        {
            Environment.SetEnvironmentVariable("APPVEYOR_BUILD_BUILD", "0");
            Environment.SetEnvironmentVariable("APPVEYOR_BUILD_VERSION", "1.0.0-0");

            const string yaml = @"
version: 1.0.0-{build}
clone_folder: c:\folder\with\version_{version}_here
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.Version.Should().Be("1.0.0-0");
            conf.CloneFolder.Should().Be(@"c:\folder\with\version_1.0.0-0_here");
        }
Exemple #10
0
        public void AllowFailuresSectionShouldBeEmpty()
        {
            const string yaml = @"
matrix:
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.Matrix.ShouldBeEquivalentTo(new Matrix(
                                                 false,
                                                 new AllowedJobFailureConditions[0]));

            conf.Matrix.IsFastFinish.Should().BeFalse();
            conf.Matrix.AllowedFailures.Should().BeEmpty();
        }
Exemple #11
0
        public void ShouldReadAssemblyInfoStep()
        {
            const string yaml = @"
assembly_info:
  patch: true
  file: AssemblyInfo.*
  assembly_version: ""2.2.{build}""
  assembly_file_version: ""{version}""
  assembly_informational_version: ""{version}""
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.AssemblyInfo.Should().BeEquivalentTo(new AssemblyInfo(
                                                          true,
                                                          "AssemblyInfo.*",
                                                          "2.2.{build}",
                                                          "{version}",
                                                          "{version}"));
        }
Exemple #12
0
        public void ShouldExpandVariableValueWhenUsed()
        {
            Environment.SetEnvironmentVariable("ENV_VAR", "my env value");

            const string yaml = @"
environment:
  common_var1: common_value1 $(ENV_VAR)
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.EnvironmentVariables.ShouldBeEquivalentTo(
                new EnvironmentVariables(
                    new List <Variable>
            {
                new Variable("common_var1", "common_value1 $(ENV_VAR)", false)
            }));
            conf.EnvironmentVariables.CommonVariables[0].Value.Should().Be("common_value1 my env value");
            conf.EnvironmentVariables.Matrix.Should().BeEmpty();
        }
Exemple #13
0
        public void ShouldReadCommonVariablesInsideGlobal()
        {
            const string yaml = @"
environment:
  global:
    common_var1: common_value1
    common_var2:
      secure: common_value2_secured
  matrix:
    - db: mysql
      password: mysql_password
    - db: sqlserver
      password:
        secure: sqlserver_secured_password
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.EnvironmentVariables.Should().BeEquivalentTo(
                new EnvironmentVariables(
                    new List <Variable>
            {
                new Variable("common_var1", "common_value1", false),
                new Variable("common_var2", "common_value2_secured", true)
            },
                    new List <ReadOnlyCollection <Variable> >
            {
                new ReadOnlyCollection <Variable>(new List <Variable>
                {
                    new Variable("db", "mysql", false),
                    new Variable("password", "mysql_password", false)
                }),
                new ReadOnlyCollection <Variable>(new List <Variable>
                {
                    new Variable("db", "sqlserver", false),
                    new Variable("password", "sqlserver_secured_password", true)
                })
            }));
        }
Exemple #14
0
        public void MatrixShouldReadAllowFailuresSectionSuccessfully()
        {
            const string yaml = @"
matrix:
  allow_failures:
    - platform: x86
      configuration: Debug
    - platform: x64
      configuration: Release
";

            var conf = new BuildConfigurationYamlStringReader(yaml).GetBuildConfiguration();

            conf.Matrix.ShouldBeEquivalentTo(new Matrix(
                                                 false,
                                                 new[]
            {
                new AllowedJobFailureConditions(null, "Debug", "x86", null, new Variable[0]),
                new AllowedJobFailureConditions(null, "Release", "x64", null, new Variable[0])
            }));

            conf.Matrix.AllowedFailures.Should().HaveCount(2);
        }