<mxfile host="drawio" agent="study-site"><diagram id="d" name="seq-test-2"><mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="850" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="title" value="テスト フェーズ2: CI で単体・結合・E2E を実行(無人)" style="text;html=1;fontSize=16;align=left;verticalAlign=middle;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="16" y="8" width="1568" height="30" as="geometry" /></mxCell><mxCell id="accm" value="CodeCommit" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.codecommit;fillColor=#4D27AA;" vertex="1" parent="1"><mxGeometry x="107" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="aeb" value="EventBridge&lt;br&gt;(ルール)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.eventbridge;fillColor=#E7157B;" vertex="1" parent="1"><mxGeometry x="297" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="acb" value="CodeBuild" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.codebuild;fillColor=#4D27AA;" vertex="1" parent="1"><mxGeometry x="487" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="aecr" value="ECR&lt;br&gt;(テスト用イメージ)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ecr;fillColor=#ED7100;" vertex="1" parent="1"><mxGeometry x="677" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="asec" value="Secrets Manager" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.secrets_manager;fillColor=#DD344C;" vertex="1" parent="1"><mxGeometry x="867" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="as3" value="S3" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;fillColor=#7AA116;" vertex="1" parent="1"><mxGeometry x="1057" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="acwl" value="CloudWatch Logs" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.cloudwatch;fillColor=#E7157B;" vertex="1" parent="1"><mxGeometry x="1247" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="abr" value="Bedrock&lt;br&gt;(jp. 推論プロファイル)" style="sketch=0;outlineConnect=0;fontColor=#232F3E;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=11;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.bedrock;fillColor=#01A88D;" vertex="1" parent="1"><mxGeometry x="1437" y="60" width="56" height="56" as="geometry" /></mxCell><mxCell id="m1" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=1.5;dashed=1;strokeColor=#666666;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="135" y="196" as="sourcePoint" /><mxPoint x="325" y="196" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t1" value="イベント「CodeCommit Pull Request State Change」(PR の作成・更新)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#555555;" vertex="1" parent="1"><mxGeometry x="151" y="177" width="392.2" height="15" as="geometry" /></mxCell><mxCell id="n1" value="1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;fontColor=#555555;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="124" y="185" width="22" height="22" as="geometry" /></mxCell><mxCell id="m2" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="325" y="242" as="sourcePoint" /><mxPoint x="515" y="242" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t2" value="StartBuild(環境変数に PR ID・コミット ID)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="341" y="223" width="246.20000000000002" height="15" as="geometry" /></mxCell><mxCell id="n2" value="2" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="314" y="231" width="22" height="22" as="geometry" /></mxCell><mxCell id="m3" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="288" as="sourcePoint" /><mxPoint x="705" y="288" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t3" value="イメージの取得(ブラウザ・DB 入りのテスト用イメージ)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="531" y="269" width="290.0" height="15" as="geometry" /></mxCell><mxCell id="n3" value="3" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="277" width="22" height="22" as="geometry" /></mxCell><mxCell id="m4" value="" style="endArrow=open;endFill=0;html=1;strokeWidth=1.5;dashed=1;strokeColor=#1565C0;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="705" y="334" as="sourcePoint" /><mxPoint x="515" y="334" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t4" value="イメージ" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1565C0;" vertex="1" parent="1"><mxGeometry x="531" y="315" width="50" height="15" as="geometry" /></mxCell><mxCell id="n4" value="4" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1565C0;fontColor=#1565C0;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="323" width="22" height="22" as="geometry" /></mxCell><mxCell id="m5" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="380" as="sourcePoint" /><mxPoint x="895" y="380" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t5" value="GetSecretValue(テスト用の鍵)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="531" y="361" width="171.2" height="15" as="geometry" /></mxCell><mxCell id="n5" value="5" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="369" width="22" height="22" as="geometry" /></mxCell><mxCell id="m6" value="" style="endArrow=open;endFill=0;html=1;strokeWidth=1.5;dashed=1;strokeColor=#1565C0;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="895" y="426" as="sourcePoint" /><mxPoint x="515" y="426" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t6" value="値(ログに出さない)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1565C0;" vertex="1" parent="1"><mxGeometry x="531" y="407" width="106.4" height="15" as="geometry" /></mxCell><mxCell id="n6" value="6" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1565C0;fontColor=#1565C0;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="415" width="22" height="22" as="geometry" /></mxCell><mxCell id="m7" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="464" as="sourcePoint" /><mxPoint x="515" y="480" as="targetPoint" /><Array as="points"><mxPoint x="565" y="464" /><mxPoint x="565" y="480" /></Array></mxGeometry></mxCell><mxCell id="t7" value="単体・結合・E2E を実行" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=middle;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="575" y="462" width="129.8" height="20" as="geometry" /></mxCell><mxCell id="n7" value="7" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="461" width="22" height="22" as="geometry" /></mxCell><mxCell id="m8" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="518" as="sourcePoint" /><mxPoint x="1085" y="518" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t8" value="PutObject(レポート・録画・カバレッジ)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="531" y="499" width="217.2" height="15" as="geometry" /></mxCell><mxCell id="n8" value="8" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="507" width="22" height="22" as="geometry" /></mxCell><mxCell id="m9" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=1.5;dashed=1;strokeColor=#666666;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="564" as="sourcePoint" /><mxPoint x="1275" y="564" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t9" value="ビルドログ(自動で送られる)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#555555;" vertex="1" parent="1"><mxGeometry x="531" y="545" width="150.4" height="15" as="geometry" /></mxCell><mxCell id="n9" value="9" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;fontColor=#555555;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="553" width="22" height="22" as="geometry" /></mxCell><mxCell id="m10" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="610" as="sourcePoint" /><mxPoint x="1465" y="610" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t10" value="失敗したときだけ claude -p(失敗ログ + 差分)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="531" y="591" width="253.0" height="15" as="geometry" /></mxCell><mxCell id="n10" value="10" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="599" width="22" height="22" as="geometry" /></mxCell><mxCell id="m11" value="" style="endArrow=open;endFill=0;html=1;strokeWidth=1.5;dashed=1;strokeColor=#1565C0;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1465" y="656" as="sourcePoint" /><mxPoint x="515" y="656" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t11" value="失敗の要約(どのテストが・何で・怪しい箇所)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1565C0;" vertex="1" parent="1"><mxGeometry x="531" y="637" width="238.4" height="15" as="geometry" /></mxCell><mxCell id="n11" value="11" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1565C0;fontColor=#1565C0;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="504" y="645" width="22" height="22" as="geometry" /></mxCell><mxCell id="m12" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="702" as="sourcePoint" /><mxPoint x="135" y="702" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t12" value="PostCommentForPullRequest(結果 + 要約 + S3 の場所)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="151" y="683" width="306.2" height="15" as="geometry" /></mxCell><mxCell id="n12" value="12" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="124" y="691" width="22" height="22" as="geometry" /></mxCell><mxCell id="m13" value="" style="endArrow=block;endFill=1;html=1;strokeWidth=2;strokeColor=#1f2937;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="748" as="sourcePoint" /><mxPoint x="135" y="748" as="targetPoint" /></mxGeometry></mxCell><mxCell id="t13" value="UpdatePullRequestApprovalState(全部合格のときだけ)" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=bottom;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="151" y="729" width="303.4" height="15" as="geometry" /></mxCell><mxCell id="n13" value="13" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=none;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="124" y="737" width="22" height="22" as="geometry" /></mxCell><mxCell id="note" value="CodeCommit に GitHub の「必須チェック」は無い。承認ルールの承認者プールにビルドの assumed-role を入れ、13 の承認を必須にして代用する(公式: 承認者プールは assumed role に対応。構成案)。" style="text;html=1;whiteSpace=wrap;fontSize=11;align=left;verticalAlign=top;fontColor=#555555;" vertex="1" parent="1"><mxGeometry x="30" y="800" width="1540" height="26" as="geometry" /></mxCell><mxCell id="lccm" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="135" y="150" as="sourcePoint" /><mxPoint x="135" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="leb" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="325" y="150" as="sourcePoint" /><mxPoint x="325" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="lcb" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="515" y="150" as="sourcePoint" /><mxPoint x="515" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="lecr" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="705" y="150" as="sourcePoint" /><mxPoint x="705" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="lsec" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="895" y="150" as="sourcePoint" /><mxPoint x="895" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="ls3" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1085" y="150" as="sourcePoint" /><mxPoint x="1085" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="lcwl" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1275" y="150" as="sourcePoint" /><mxPoint x="1275" y="784" as="targetPoint" /></mxGeometry></mxCell><mxCell id="lbr" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#9ca3af;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1465" y="150" as="sourcePoint" /><mxPoint x="1465" y="784" as="targetPoint" /></mxGeometry></mxCell></root></mxGraphModel></diagram></mxfile>