in servicecatalog_factory/template_builder/builders.py [0:0]
def build_test_stage(self, test_input_artifact_name, options, tpl, stages, source):
actions = [
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=base_template.VALIDATE_OUTPUT_ARTIFACT
)
],
Configuration={
"ProjectName": shared_resources.VALIDATE_PROJECT_NAME,
"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",),
dict(
name="SOURCE_PATH",
value=source.get("Path", "."),
type="PLAINTEXT",
),
]
)
),
},
Name="Validate",
)
]
if options.get("ShouldCFNNag"):
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=base_template.CFNNAG_OUTPUT_ARTIFACT
)
],
Configuration={
"ProjectName": shared_resources.CFNNAG_PROJECT_NAME,
"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",
),
dict(
name="SOURCE_PATH",
value=source.get("Path", "."),
type="PLAINTEXT",
),
]
)
),
},
Name="CFNNag",
)
)
if options.get("ShouldCloudformationRSpec"):
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=base_template.CLOUDFORMATION_RSPEC_OUTPUT_ARTIFACT
)
],
Configuration={
"ProjectName": shared_resources.RSPEC_PROJECT_NAME,
"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",
),
dict(
name="SOURCE_PATH",
value=source.get("Path", "."),
type="PLAINTEXT",
),
]
)
),
},
Name="CloudFormationRSpec",
)
)
self.add_custom_tests(tpl, stages, actions, test_input_artifact_name)
stage = codepipeline.Stages(Name="Tests", Actions=actions)
return stage