buildtools/smoketests.proj (67 lines of code) (raw):
<Project ToolsVersion="Current" DefaultTargets="smoke-tests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RootPath Condition="'$(RootPath)'==''">$(MSBuildProjectDirectory)</RootPath>
<!-- We need to skip recipes that use Docker when running on Windows CodeBuild -->
<ShouldRunDockerTests>false</ShouldRunDockerTests>
<ShouldRunDockerTests Condition="'$(OS)' != 'Windows_NT' OR '$(CODEBUILD_BUILD_ID)' == ''">true</ShouldRunDockerTests>
<!-- Generate a suffix for CloudFormation stack names, in case multiple smoke tests are running at once -->
<SafeOperatingSystem>$(OS)</SafeOperatingSystem>
<SafeOperatingSystem Condition="'$(OS)' == 'Windows_NT'">Windows</SafeOperatingSystem> <!-- need to remove _ for CloudFormation-->
<Suffix>$(SafeOperatingSystem)-$([System.DateTimeOffset]::UtcNow.ToUnixTimeSeconds())</Suffix>
<BlazorAppName>CanaryBlazorApp-$(Suffix)</BlazorAppName>
<ECSFargateAppName>CanaryECSFargateApp-$(Suffix)</ECSFargateAppName>
<AppRunnerAppName>CanaryAppRunnerApp-$(Suffix)</AppRunnerAppName>
<BeanstalkWindowsAppName>CanaryEBWinApp-$(Suffix)</BeanstalkWindowsAppName>
<BeanstalkLinuxAppName>CanaryEBLinuxApp-$(Suffix)</BeanstalkLinuxAppName>
<PushImageECRAppName>CanaryEBWinApp-$(Suffix)</PushImageECRAppName>
<BeanstalkLinuxAppName>CanaryEBLinuxApp-$(Suffix)</BeanstalkLinuxAppName>
<ECSServiceAppName>CanaryECSServiceApp-$(Suffix)</ECSServiceAppName>
</PropertyGroup>
<Target Name="smoke-tests" DependsOnTargets="run-blazor;run-fargate;run-apprunner;run-beanstalk-windows;run-beanstalk-linux;run-container-ecr;run-ecs-service" />
<Target Name="initialize">
<!-- Install the latest version of the deploy tool-->
<Exec Command="dotnet tool install -g aws.deploy.tools" />
</Target>
<Target Name="run-blazor" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/BlazorWasm60" Command="dotnet aws deploy --apply apply-settings.json --application-name $(BlazorAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-blazor" />
</Target>
<Target Name="cleanup-blazor" AfterTargets="run-blazor">
<Exec Command="dotnet aws delete-deployment $(BlazorAppName) --profile test-runner --silent" />
</Target>
<Target Name="run-fargate" Condition="'$(ShouldRunDockerTests)' == 'true'" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/WebAppWithDockerFile" Command="dotnet aws deploy --apply ../../buildtools/canarysettings/ECSFargateCanary.json --application-name $(ECSFargateAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-fargate" />
</Target>
<Target Name="cleanup-fargate" Condition="'$(ShouldRunDockerTests)' == 'true'" AfterTargets="run-fargate">
<Exec Command="dotnet aws delete-deployment $(ECSFargateAppName) --profile test-runner --silent" />
</Target>
<Target Name="run-apprunner" Condition="'$(ShouldRunDockerTests)' == 'true'" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/WebAppWithDockerFile" Command="dotnet aws deploy --apply ../../buildtools/canarysettings/AppRunnerCanary.json --application-name $(AppRunnerAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-apprunner" />
</Target>
<Target Name="cleanup-apprunner" Condition="'$(ShouldRunDockerTests)' == 'true'" AfterTargets="run-apprunner">
<Exec Command="dotnet aws delete-deployment $(AppRunnerAppName) --profile test-runner --silent" />
</Target>
<Target Name="run-beanstalk-windows" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/WebAppNoDockerFile" Command="dotnet aws deploy --apply ElasticBeanStalkConfigFile-Windows.json --application-name $(BeanstalkWindowsAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-beanstalk-windows" />
</Target>
<Target Name="cleanup-beanstalk-windows" AfterTargets="run-beanstalk-windows">
<Exec Command="dotnet aws delete-deployment $(BeanstalkWindowsAppName) --profile test-runner --silent" />
</Target>
<Target Name="run-beanstalk-linux" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/WebAppNoDockerFile" Command="dotnet aws deploy --apply ElasticBeanStalkConfigFile-Linux.json --application-name $(BeanstalkLinuxAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-beanstalk-linux" />
</Target>
<Target Name="cleanup-beanstalk-linux" AfterTargets="run-beanstalk-linux">
<Exec Command="dotnet aws delete-deployment $(BeanstalkLinuxAppName) --profile test-runner --silent" />
</Target>
<Target Name="run-container-ecr" Condition="'$(ShouldRunDockerTests)' == 'true'" DependsOnTargets="initialize">
<Exec WorkingDirectory="../testapps/ConsoleAppTask" Command="dotnet aws deploy --apply ../../buildtools/canarysettings/PushContainerImageCanary.json --profile test-runner --silent" />
<!-- This one doesn't have a cleanup step since it doesn't use CloudFormation -->
</Target>
<Target Name="run-ecs-service" Condition="'$(ShouldRunDockerTests)' == 'true'" DependsOnTargets="">
<Exec WorkingDirectory="../testapps/ConsoleAppService" Command="dotnet aws deploy --apply ../../buildtools/canarysettings/ECSServiceCanary.json --application-name $(ECSServiceAppName) --profile test-runner --silent" />
<OnError ExecuteTargets="cleanup-ecs-service" />
</Target>
<Target Name="cleanup-ecs-service" Condition="'$(ShouldRunDockerTests)' == 'true'" AfterTargets="run-ecs-service">
<Exec Command="dotnet aws delete-deployment $(ECSServiceAppName) --profile test-runner --silent" />
</Target>
</Project>