in servicecatalog_factory/template_builder/builders.py [0:0]
def add_custom_tests(self, tpl, stages, actions, test_input_artifact_name):
for test_action_name, test_action_details in stages.get("Tests", {}).items():
project = tpl.add_resource(
codebuild.Project(
test_action_name,
Name=t.Sub("${AWS::StackName}-" + test_action_name),
ServiceRole=t.Sub(
"arn:${AWS::Partition}:iam::${AWS::AccountId}:role/servicecatalog-product-factory/DeliveryCodeRole"
),
Tags=t.Tags.from_dict(
**{"ServiceCatalogPuppet:Actor": "Framework"}
),
Artifacts=codebuild.Artifacts(Type="CODEPIPELINE"),
TimeoutInMinutes=60,
Environment=codebuild.Environment(
ComputeType=constants.ENVIRONMENT_COMPUTE_TYPE_DEFAULT,
Image=test_action_details.get(
"BuildSpecImage", constants.ENVIRONMENT_IMAGE_DEFAULT
),
Type=constants.ENVIRONMENT_TYPE_DEFAULT,
EnvironmentVariables=[
codebuild.EnvironmentVariable(
Name="TEMPLATE_FORMAT", Type="PLAINTEXT", Value="yaml",
),
codebuild.EnvironmentVariable(
Name="CATEGORY", Type="PLAINTEXT", Value="stack",
),
],
),
Source=codebuild.Source(
BuildSpec=test_action_details.get("BuildSpec"),
Type="CODEPIPELINE",
),
Description=t.Sub(test_action_name + " for ${AWS::StackName}"),
)
)
actions.append(
codepipeline.Actions(
RunOrder=1,
RoleArn=t.Sub(
"arn:${AWS::Partition}:iam::${AWS::AccountId}:role/servicecatalog-product-factory/SourceRole"
),
InputArtifacts=[
codepipeline.InputArtifacts(Name=test_input_artifact_name),
],
ActionTypeId=codepipeline.ActionTypeId(
Category="Test", Owner="AWS", Version="1", Provider="CodeBuild",
),
OutputArtifacts=[
codepipeline.OutputArtifacts(Name=test_action_name)
],
Configuration={
"ProjectName": t.Ref(project),
"PrimarySource": test_input_artifact_name,
"EnvironmentVariables": t.Sub(
json.dumps(
[
dict(
name="TEMPLATE_FORMAT",
value="yaml",
type="PLAINTEXT",
),
dict(
name="CATEGORY",
value="stack",
type="PLAINTEXT",
),
]
)
),
},
Name=test_action_name,
)
)