diff --git a/IntelliTect.Multitool.Tests/CIDetectionTests.cs b/IntelliTect.Multitool.Tests/CIDetectionTests.cs index 42b1e09..0ae5b5b 100644 --- a/IntelliTect.Multitool.Tests/CIDetectionTests.cs +++ b/IntelliTect.Multitool.Tests/CIDetectionTests.cs @@ -35,6 +35,7 @@ public class CIDetectionTests [InlineData("CIRCLECI", "true")] [InlineData("CONTINUOUS_INTEGRATION", "true")] [InlineData("TF_BUILD", "true")] + [InlineData("JB_SPACE_API_URL", "https://space.example")] [InlineData("TEAMCITY_VERSION", "1.0")] [InlineData("APPVEYOR", "True")] [InlineData("BuildRunner", "MyGet")] @@ -48,6 +49,31 @@ public void CiEnvVar_SetsCIPropertyToTrue(string envVar, string value) Assert.Equal("true", ci); } + [Theory] + [InlineData("BUILD_ID", "build", "BUILD_URL", "https://jenkins.example/build")] + [InlineData("BUILD_ID", "build", "PROJECT_ID", "project")] + [InlineData("CODEBUILD_BUILD_ID", "build", "AWS_REGION", "us-east-1")] + public void CiEnvVarPair_SetsCIPropertyToTrue(string firstEnvVar, string firstValue, string secondEnvVar, string secondValue) + { + string ci = EvaluateCIProperty(new Dictionary + { + [firstEnvVar] = firstValue, + [secondEnvVar] = secondValue + }); + Assert.Equal("true", ci); + } + + [Theory] + [InlineData("BUILD_ID", "build")] + [InlineData("BUILD_URL", "https://jenkins.example/build")] + [InlineData("CODEBUILD_BUILD_ID", "build")] + [InlineData("AWS_REGION", "us-east-1")] + public void IncompleteCiEnvVarPair_DoesNotSetCIPropertyToTrue(string envVar, string value) + { + string ci = EvaluateCIProperty(new Dictionary { [envVar] = value }); + Assert.Equal("false", ci); + } + [Fact] public void NoCiEnvVars_SetsCIPropertyToFalse() { diff --git a/IntelliTect.Multitool/Build/IntelliTect.Multitool.targets b/IntelliTect.Multitool/Build/IntelliTect.Multitool.targets index 2ca85d3..19094d9 100644 --- a/IntelliTect.Multitool/Build/IntelliTect.Multitool.targets +++ b/IntelliTect.Multitool/Build/IntelliTect.Multitool.targets @@ -7,9 +7,13 @@ '$(CIRCLECI)' == 'true' or '$(CONTINUOUS_INTEGRATION)' == 'true' or '$(TF_BUILD)' == 'true' or + ('$(BUILD_ID)' != '' and '$(BUILD_URL)' != '') or + ('$(BUILD_ID)' != '' and '$(PROJECT_ID)' != '') or + ('$(CODEBUILD_BUILD_ID)' != '' and '$(AWS_REGION)' != '') or '$(TEAMCITY_VERSION)' != '' or '$(APPVEYOR)' != '' or '$(BuildRunner)' == 'MyGet' or + '$(JB_SPACE_API_URL)' != '' or '$(JENKINS_URL)' != '' or '$(TRAVIS)' == 'true' or '$(BUDDY)' == 'true' or