The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
252 lines
41 KiB
XML
252 lines
41 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="4198" viewBox="0 0 1200 4198" role="img">
|
|
<title>terminal evidence</title>
|
|
<desc>Terminal-style rendering generated from retained command output. Sensitive-looking values are redacted in the visual asset.</desc>
|
|
<rect x="1" y="1" width="1198" height="4196" rx="14" fill="#0d1117" stroke="#30363d"/>
|
|
<rect x="1" y="1" width="1198" height="44" rx="14" fill="#161b22"/>
|
|
<rect x="1" y="30" width="1198" height="14" fill="#161b22"/>
|
|
<circle cx="24" cy="22" r="6" fill="#ff5f57"/>
|
|
<circle cx="44" cy="22" r="6" fill="#febc2e"/>
|
|
<circle cx="64" cy="22" r="6" fill="#28c840"/>
|
|
<text x="92" y="27" fill="#8b949e" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">terminal evidence</text>
|
|
<text x="24" y="68" fill="#c9d1d9" font-size="15" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">$ #!/bin/bash
|
|
set -o pipefail
|
|
cd /shared/codebase/clean-architecture-backend-template/src
|
|
R=grpc/grpc-testkit/build/test</tspan><tspan x="24" dy="22">-results
|
|
notime() { sed -E 's/ in [0-9]+m? ?[0-9.]*s$//'; }
|
|
xml() { python3 - "$1" <<'PY'
|
|
import sys, glob, xml.etree.El</tspan><tspan x="24" dy="22">ementTree as ET
|
|
d = sys.argv[1]
|
|
names = set()
|
|
for p in sorted(glob.glob(f"{d}/TEST-*.xml")):
|
|
r = ET.parse(p).getroot</tspan><tspan x="24" dy="22">()
|
|
print(f" {r.get('name').split('.')[-1]:36s} tests={r.get('tests')} failures={r.get('failures')} errors={r.get(</tspan><tspan x="24" dy="22">'errors')} skipped={r.get('skipped')}")
|
|
for c in r.iter('testcase'): names.add(c.get('classname') + '#' + c.get('nam</tspan><tspan x="24" dy="22">e'))
|
|
open('/tmp/names_' + d.split('/')[-1], 'w').write('\n'.join(sorted(names)))
|
|
print(f" 시험 {len(names)} 개")
|
|
PY
|
|
}</tspan><tspan x="24" dy="22">
|
|
|
|
echo "# gradle 판"
|
|
./gradlew --offline --no-daemon --version 2>/dev/null | grep -E '^Gradle|^JVM' | sed 's#^# #'
|
|
|
|
ech</tspan><tspan x="24" dy="22">o
|
|
echo "# grpc-testkit 이 등록하는 레인 넷과 각각의 태그"
|
|
grep -n "lane('\|tag = " grpc/grpc-testkit/build.gradle | sed </tspan><tspan x="24" dy="22">-E 's#^([0-9]+): *# grpc-testkit/build.gradle:\1 #'
|
|
|
|
echo
|
|
echo "# 기본 test 에 실제로 걸리는 제외 태그는 두 곳에서 온</tspan><tspan x="24" dy="22">다"
|
|
grep -n 'excludeTags' build.gradle grpc/grpc-testkit/build.gradle | sed 's#^# #'
|
|
awk 'NR>=37 && NR<=44 {printf " g</tspan><tspan x="24" dy="22">rpc-testkit/build.gradle:%d %s\n", NR, $0}' grpc/grpc-testkit/build.gradle
|
|
echo " grpc-testkit 안의 quarantine 태그 : $</tspan><tspan x="24" dy="22">(grep -rc 'quarantine' grpc/grpc-testkit/src/test --include=*.java 2>/dev/null | awk -F: '{s+=$2} END{print s+0}') 건"
|
|
|
|
</tspan><tspan x="24" dy="22">echo
|
|
echo "# 레인 태그는 클래스 단위인가"
|
|
grep -rn -A1 '@Tag' grpc/grpc-testkit/src/test/java --include=*.java \
|
|
| gre</tspan><tspan x="24" dy="22">p -E '@Tag|class ' | sed 's#.*/java/dev/caskeleton/grpc/##;s#^# #'
|
|
|
|
echo
|
|
echo "# check 의 태스크 그래프 — 시험을 돌</tspan><tspan x="24" dy="22">리지 않고 확인한다"
|
|
timeout 900 ./gradlew --offline --no-daemon :grpc:grpc-testkit:check --dry-run > /tmp/dry.out 2>&1; </tspan><tspan x="24" dy="22">D=$?
|
|
echo " \$ ./gradlew :grpc:grpc-testkit:check --dry-run GRADLE_EXIT=$D"
|
|
grep ':grpc:grpc-testkit:' /tmp/dry.out</tspan><tspan x="24" dy="22"> | sed 's#^# #'
|
|
echo " 그 그래프 안의 레인 태스크 : $(grep -cE ':grpc:grpc-testkit:(grpcInProcess|grpcNetty|grpcFa</tspan><tspan x="24" dy="22">ult|grpcPerformance)' /tmp/dry.out) 건"
|
|
|
|
echo
|
|
echo "# 낡은 결과를 지우고 세 레인을 이름으로 돌린다"
|
|
rm -rf $R/grpcInProc</tspan><tspan x="24" dy="22">essContractTest $R/grpcNettyContractTest $R/grpcFaultTest $R/test
|
|
echo " 실행 전 남아 있는 결과 XML : $(find $R -maxdep</tspan><tspan x="24" dy="22">th 2 -name 'TEST-*.xml' 2>/dev/null | grep -E '/(grpcInProcessContractTest|grpcNettyContractTest|grpcFaultTest|test)/' |</tspan><tspan x="24" dy="22"> wc -l) 건"
|
|
timeout 1800 ./gradlew --offline --no-daemon --rerun-tasks \
|
|
:grpc:grpc-testkit:grpcInProcessContractTest </tspan><tspan x="24" dy="22">\
|
|
:grpc:grpc-testkit:grpcNettyContractTest \
|
|
:grpc:grpc-testkit:grpcFaultTest > /tmp/g1.out 2>&1; G1=$?
|
|
echo " \$ .</tspan><tspan x="24" dy="22">/gradlew :grpc:grpc-testkit:{grpcInProcessContractTest,grpcNettyContractTest,grpcFaultTest}"
|
|
grep -E 'BUILD (SUCCESSFUL|</tspan><tspan x="24" dy="22">FAILED)' /tmp/g1.out | notime | sed 's#^# #'
|
|
echo " GRADLE_EXIT=$G1"
|
|
if [ $G1 -ne 0 ]; then
|
|
echo " 레인 실행</tspan><tspan x="24" dy="22">이 실패했으므로 집계하지 않는다"
|
|
sed -n '/^FAILURE:/,$p' /tmp/g1.out | head -12 | sed 's#^# #'
|
|
exit $G1
|
|
fi
|
|
for l </tspan><tspan x="24" dy="22">in grpcInProcessContractTest grpcNettyContractTest grpcFaultTest; do
|
|
echo " [$l]"; xml "$R/$l"
|
|
done
|
|
|
|
echo
|
|
echo "# </tspan><tspan x="24" dy="22">같은 leaf 의 기본 test 를 돌린다"
|
|
timeout 1800 ./gradlew --offline --no-daemon --rerun-tasks :grpc:grpc-testkit:test > /</tspan><tspan x="24" dy="22">tmp/g2.out 2>&1; G2=$?
|
|
echo " \$ ./gradlew :grpc:grpc-testkit:test"
|
|
grep -E 'BUILD (SUCCESSFUL|FAILED)' /tmp/g2.out | n</tspan><tspan x="24" dy="22">otime | sed 's#^# #'
|
|
echo " GRADLE_EXIT=$G2"
|
|
if [ $G2 -ne 0 ]; then
|
|
echo " 기본 test 실행이 실패했으므로 집계</tspan><tspan x="24" dy="22">하지 않는다"
|
|
sed -n '/^FAILURE:/,$p' /tmp/g2.out | head -12 | sed 's#^# #'
|
|
exit $G2
|
|
fi
|
|
xml "$R/test"
|
|
|
|
echo
|
|
echo "</tspan><tspan x="24" dy="22"># 레인이 돌린 시험이 기본 test 가 돌린 시험의 부분집합인가"
|
|
python3 - <<'PY'
|
|
lanes = set()
|
|
for l in ("grpcInProcessContr</tspan><tspan x="24" dy="22">actTest", "grpcNettyContractTest", "grpcFaultTest"):
|
|
lanes |= set(open('/tmp/names_' + l).read().split('\n'))
|
|
base =</tspan><tspan x="24" dy="22"> set(open('/tmp/names_test').read().split('\n'))
|
|
print(f" 레인 {len(lanes)} 개 · 기본 test {len(base)} 개")
|
|
print(f"</tspan><tspan x="24" dy="22"> 레인이 돌린 시험이 기본 test 안에 전부 있는가 : {lanes <= base}")
|
|
print(f" 기본 test 에만 있는 시험 : {len(base -</tspan><tspan x="24" dy="22"> lanes)} 개")
|
|
PY
|
|
echo " 성능 레인 클래스가 기본 test 결과에 있는가 : $(ls $R/test/TEST-*GrpcPerformanceLaneTest.xml 2</tspan><tspan x="24" dy="22">>/dev/null | wc -l) 건"
|
|
|
|
echo
|
|
echo "# 레인 태스크만 거는 보증"
|
|
G=build-logic/src/main/groovy/ca.strict-test-lane.gradle
|
|
</tspan><tspan x="24" dy="22">grep -n 'failOnNoDiscoveredTests\|upToDateWhen\|executedTests\|executedSelectors\|excludes tests \*after\*\|refuses zero</tspan><tspan x="24" dy="22">\|throw new GradleException' $G \
|
|
| cut -c1-150 | sed -E 's#^([0-9]+): *# ca.strict-test-lane.gradle:\1 #'
|
|
|
|
echo
|
|
ech</tspan><tspan x="24" dy="22">o "# 레인 태스크를 자동으로 부르는 경로"
|
|
echo " grpc-testkit/build.gradle 이 check 를 언급하는가 : $(grep -c 'check' gr</tspan><tspan x="24" dy="22">pc/grpc-testkit/build.gradle) 건"
|
|
echo " 워크플로 $(ls ../.github/workflows/*.yml | wc -l) 개 중 grpc 를 언급하는 것 : </tspan><tspan x="24" dy="22">$(grep -rli 'grpc' ../.github/workflows/ 2>/dev/null | wc -l) 건"
|
|
awk 'NR>=48 && NR<=61 {printf " ci-quality-gates.yml:</tspan><tspan x="24" dy="22">%d %s\n", NR, $0}' ../.github/workflows/ci-quality-gates.yml
|
|
echo " 그 마지막 스텝이 부르는 태스크가 무엇을 요구하는가 </tspan><tspan x="24" dy="22">:"
|
|
grep -n 'grpcTransportQualificationTest' build.gradle | sed -E 's#^([0-9]+): *# src/build.gradle:\1 #'
|
|
</tspan></text>
|
|
<text x="24" y="1014" fill="#8b949e" font-size="13" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">cwd: /shared/codebase/clean-architecture-backend-template/src</tspan></text>
|
|
<text x="24" y="1036" fill="#8b949e" font-size="13" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0">time: 2026-09-04T02:08:19+00:00 · exit 0</tspan></text>
|
|
<line x1="24" y1="1050" x2="1176" y2="1050" stroke="#30363d"/>
|
|
<text x="24" y="1090" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># gradle 판</tspan></text>
|
|
<text x="24" y="1112" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> Gradle 9.0.0</tspan></text>
|
|
<text x="24" y="1134" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="1156" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># grpc-testkit 이 등록하는 레인 넷과 각각의 태그</tspan></text>
|
|
<text x="24" y="1178" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:15 lane('grpcInProcessContractTest') {</tspan></text>
|
|
<text x="24" y="1200" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:16 tag = 'grpc-inprocess'</tspan></text>
|
|
<text x="24" y="1222" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:20 lane('grpcNettyContractTest') {</tspan></text>
|
|
<text x="24" y="1244" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:21 tag = 'grpc-netty'</tspan></text>
|
|
<text x="24" y="1266" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:25 lane('grpcFaultTest') {</tspan></text>
|
|
<text x="24" y="1288" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:26 tag = 'grpc-fault'</tspan></text>
|
|
<text x="24" y="1310" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:30 lane('grpcPerformanceTest') {</tspan></text>
|
|
<text x="24" y="1332" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:31 tag = 'grpc-performance'</tspan></text>
|
|
<text x="24" y="1354" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="1376" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 기본 test 에 실제로 걸리는 제외 태그는 두 곳에서 온다</tspan></text>
|
|
<text x="24" y="1398" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:548: // (the skeleton default) excludeTags is a no-op.</tspan></text>
|
|
<text x="24" y="1420" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> build.gradle:551: excludeTags 'quarantine'</tspan></text>
|
|
<text x="24" y="1442" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc/grpc-testkit/build.gradle:42: excludeTags 'grpc-performance'</tspan></text>
|
|
<text x="24" y="1464" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:37 // The performance lane is excluded from the default `test` task. It measures a running server</tspan></text>
|
|
<text x="24" y="1486" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:38 // under load, and a measurement in the release gate is a flaky test on a shared CI runner; it ru</tspan><tspan x="24" dy="22">ns</tspan></text>
|
|
<text x="24" y="1530" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:39 // when somebody asks for it, by name.</tspan></text>
|
|
<text x="24" y="1552" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:40 tasks.named('test') {</tspan></text>
|
|
<text x="24" y="1574" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:41 useJUnitPlatform {</tspan></text>
|
|
<text x="24" y="1596" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:42 excludeTags 'grpc-performance'</tspan></text>
|
|
<text x="24" y="1618" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:43 }</tspan></text>
|
|
<text x="24" y="1640" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle:44 }</tspan></text>
|
|
<text x="24" y="1662" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit 안의 quarantine 태그 : 0 건</tspan></text>
|
|
<text x="24" y="1684" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="1706" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 레인 태그는 클래스 단위인가</tspan></text>
|
|
<text x="24" y="1728" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcInProcessContractFixtureTest.java:22:@Tag("grpc-inprocess")</tspan></text>
|
|
<text x="24" y="1750" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcInProcessContractFixtureTest.java-23-class GrpcInProcessContractFixtureTest {</tspan></text>
|
|
<text x="24" y="1772" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcNettyContractProfileTest.java:24:@Tag("grpc-netty")</tspan></text>
|
|
<text x="24" y="1794" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcNettyContractProfileTest.java-25-class GrpcNettyContractProfileTest {</tspan></text>
|
|
<text x="24" y="1816" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcTransportEvidenceClassifierTest.java:37:@Tag("grpc-fault")</tspan></text>
|
|
<text x="24" y="1838" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> testkit/GrpcTransportEvidenceClassifierTest.java-38-class GrpcTransportEvidenceClassifierTest {</tspan></text>
|
|
<text x="24" y="1860" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> performance/GrpcPerformanceLaneTest.java:32:@Tag("grpc-performance")</tspan></text>
|
|
<text x="24" y="1882" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> performance/GrpcPerformanceLaneTest.java-33-class GrpcPerformanceLaneTest {</tspan></text>
|
|
<text x="24" y="1904" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="1926" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># check 의 태스크 그래프 — 시험을 돌리지 않고 확인한다</tspan></text>
|
|
<text x="24" y="1948" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> $ ./gradlew :grpc:grpc-testkit:check --dry-run GRADLE_EXIT=0</tspan></text>
|
|
<text x="24" y="1970" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:compileJava SKIPPED</tspan></text>
|
|
<text x="24" y="1992" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:processResources SKIPPED</tspan></text>
|
|
<text x="24" y="2014" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:classes SKIPPED</tspan></text>
|
|
<text x="24" y="2036" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:checkstyleMain SKIPPED</tspan></text>
|
|
<text x="24" y="2058" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:compileTestJava SKIPPED</tspan></text>
|
|
<text x="24" y="2080" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:processTestResources SKIPPED</tspan></text>
|
|
<text x="24" y="2102" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:testClasses SKIPPED</tspan></text>
|
|
<text x="24" y="2124" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:checkstyleTest SKIPPED</tspan></text>
|
|
<text x="24" y="2146" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:spotbugsMain SKIPPED</tspan></text>
|
|
<text x="24" y="2168" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:spotbugsTest SKIPPED</tspan></text>
|
|
<text x="24" y="2190" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:spotlessJava SKIPPED</tspan></text>
|
|
<text x="24" y="2212" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:spotlessJavaCheck SKIPPED</tspan></text>
|
|
<text x="24" y="2234" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:spotlessCheck SKIPPED</tspan></text>
|
|
<text x="24" y="2256" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:test SKIPPED</tspan></text>
|
|
<text x="24" y="2278" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> :grpc:grpc-testkit:check SKIPPED</tspan></text>
|
|
<text x="24" y="2300" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 그 그래프 안의 레인 태스크 : 0 건</tspan></text>
|
|
<text x="24" y="2322" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="2344" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 낡은 결과를 지우고 세 레인을 이름으로 돌린다</tspan></text>
|
|
<text x="24" y="2366" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 실행 전 남아 있는 결과 XML : 0 건</tspan></text>
|
|
<text x="24" y="2388" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> $ ./gradlew :grpc:grpc-testkit:{grpcInProcessContractTest,grpcNettyContractTest,grpcFaultTest}</tspan></text>
|
|
<text x="24" y="2410" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> BUILD SUCCESSFUL</tspan></text>
|
|
<text x="24" y="2432" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GRADLE_EXIT=0</tspan></text>
|
|
<text x="24" y="2454" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [grpcInProcessContractTest]</tspan></text>
|
|
<text x="24" y="2476" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcInProcessContractFixtureTest tests=7 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2498" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시험 7 개</tspan></text>
|
|
<text x="24" y="2520" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [grpcNettyContractTest]</tspan></text>
|
|
<text x="24" y="2542" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcNettyContractProfileTest tests=9 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2564" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시험 9 개</tspan></text>
|
|
<text x="24" y="2586" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> [grpcFaultTest]</tspan></text>
|
|
<text x="24" y="2608" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcTransportEvidenceClassifierTest tests=9 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2630" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시험 9 개</tspan></text>
|
|
<text x="24" y="2652" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="2674" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 같은 leaf 의 기본 test 를 돌린다</tspan></text>
|
|
<text x="24" y="2696" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> $ ./gradlew :grpc:grpc-testkit:test</tspan></text>
|
|
<text x="24" y="2718" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> BUILD SUCCESSFUL</tspan></text>
|
|
<text x="24" y="2740" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GRADLE_EXIT=0</tspan></text>
|
|
<text x="24" y="2762" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcPerformanceGateTest tests=7 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2784" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcStableReleaseGateTest tests=9 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2806" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcInProcessContractFixtureTest tests=7 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2828" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcNettyContractProfileTest tests=9 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2850" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcServerStreamingContractTest tests=7 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2872" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcTransportEvidenceClassifierTest tests=9 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2894" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> GrpcUnaryReliabilityContractTest tests=8 failures=0 errors=0 skipped=0</tspan></text>
|
|
<text x="24" y="2916" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 시험 56 개</tspan></text>
|
|
<text x="24" y="2938" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="2960" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 레인이 돌린 시험이 기본 test 가 돌린 시험의 부분집합인가</tspan></text>
|
|
<text x="24" y="2982" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 레인 25 개 · 기본 test 56 개</tspan></text>
|
|
<text x="24" y="3004" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 레인이 돌린 시험이 기본 test 안에 전부 있는가 : True</tspan></text>
|
|
<text x="24" y="3026" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 기본 test 에만 있는 시험 : 31 개</tspan></text>
|
|
<text x="24" y="3048" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 성능 레인 클래스가 기본 test 결과에 있는가 : 0 건</tspan></text>
|
|
<text x="24" y="3070" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="3092" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 레인 태스크만 거는 보증</tspan></text>
|
|
<text x="24" y="3114" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:4 // useJUnitPlatform { includeTags }, failOnNoDiscoveredTests, outputs.upToDateWhen { false } — </tspan><tspan x="24" dy="22">once per</tspan></text>
|
|
<text x="24" y="3158" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:6 // `failOnNoDiscoveredTests` and `upToDateWhen { false }`, and a lane that is added by copy-past</tspan><tspan x="24" dy="22">e is a</tspan></text>
|
|
<text x="24" y="3202" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:23 // What a leaf may still not do is opt out of failing closed. There is no `failOnNoDiscoveredTe</tspan><tspan x="24" dy="22">sts`</tspan></text>
|
|
<text x="24" y="3246" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:237 failOnNoDiscoveredTests = true</tspan></text>
|
|
<text x="24" y="3268" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:239 // And it is not sufficient, which a TestKit fixture established. `failOnNoDiscoveredTests`</tspan></text>
|
|
<text x="24" y="3290" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:240 // applies to discovery; a tag filter excludes tests *after* discovery, so a lane whose tag</tspan></text>
|
|
<text x="24" y="3312" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:245 // So the lane counts what it actually executed and refuses zero.</tspan></text>
|
|
<text x="24" y="3334" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:246 def executedTests = new java.util.concurrent.atomic.AtomicLong(0L)</tspan></text>
|
|
<text x="24" y="3356" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:247 def executedSelectors =</tspan></text>
|
|
<text x="24" y="3378" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:250 executedTests.incrementAndGet()</tspan></text>
|
|
<text x="24" y="3400" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:252 executedSelectors.add(descriptor.className as String)</tspan></text>
|
|
<text x="24" y="3422" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:253 executedSelectors.add("${descriptor.className}.${descriptor.name}" as String)</tspan></text>
|
|
<text x="24" y="3444" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:257 if (executedTests.get() == 0L) {</tspan></text>
|
|
<text x="24" y="3466" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:258 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3488" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:276 !executedSelectors.any { String executed -></tspan></text>
|
|
<text x="24" y="3510" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:285 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3532" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:293 outputs.upToDateWhen { false }</tspan></text>
|
|
<text x="24" y="3554" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:299 // failOnNoDiscoveredTests is not enough on its own, which a TestKit fixture established rathe</tspan><tspan x="24" dy="22">r</tspan></text>
|
|
<text x="24" y="3598" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:320 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3620" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:333 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3642" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:342 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3664" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ca.strict-test-lane.gradle:347 throw new GradleException(</tspan></text>
|
|
<text x="24" y="3686" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"></tspan></text>
|
|
<text x="24" y="3708" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"># 레인 태스크를 자동으로 부르는 경로</tspan></text>
|
|
<text x="24" y="3730" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> grpc-testkit/build.gradle 이 check 를 언급하는가 : 0 건</tspan></text>
|
|
<text x="24" y="3752" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 워크플로 28 개 중 grpc 를 언급하는 것 : 0 건</tspan></text>
|
|
<text x="24" y="3774" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:48 - name: Check quality, public paths, and dependency locks</tspan></text>
|
|
<text x="24" y="3796" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:49 working-directory: src</tspan></text>
|
|
<text x="24" y="3818" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:50 run: ./gradlew check verifyPublicPathSnapshot verifyDependencyLocks --warning-mode=fail --no-d</tspan><tspan x="24" dy="22">aemon --stacktrace</tspan></text>
|
|
<text x="24" y="3862" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:51 # Named as its own step because nothing else runs it: `check` does not depend on</tspan></text>
|
|
<text x="24" y="3884" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:52 # graphqlStableTest, so the lane's required-class guard — the check that its module-boundary</tspan></text>
|
|
<text x="24" y="3906" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:53 # suite has not silently stopped being discovered — protected nothing in CI. A separate step</tspan></text>
|
|
<text x="24" y="3928" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:54 # keeps the aggregate invocation below byte-identical, which ConditionalTransportQualification</tspan></text>
|
|
<text x="24" y="3950" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:55 # ContractTest asserts on, and the two tasks do not overlap.</tspan></text>
|
|
<text x="24" y="3972" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:56 - name: Qualify the GraphQL Stable lane</tspan></text>
|
|
<text x="24" y="3994" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:57 working-directory: src</tspan></text>
|
|
<text x="24" y="4016" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:58 run: ./gradlew :adapter:inbound:graphql:graphqlStableTest --no-daemon --stacktrace</tspan></text>
|
|
<text x="24" y="4038" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:59 - name: Qualify opt-in inbound transports without skips</tspan></text>
|
|
<text x="24" y="4060" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:60 working-directory: src</tspan></text>
|
|
<text x="24" y="4082" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> ci-quality-gates.yml:61 run: ./gradlew conditionalTransportQualification --no-daemon --stacktrace</tspan></text>
|
|
<text x="24" y="4104" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> 그 마지막 스텝이 부르는 태스크가 무엇을 요구하는가 :</tspan></text>
|
|
<text x="24" y="4126" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> src/build.gradle:594 'test-results/grpcTransportQualificationTest'),</tspan></text>
|
|
<text x="24" y="4148" fill="#e6edf3" font-size="14" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" xml:space="preserve"><tspan x="24" dy="0"> src/build.gradle:606 dependsOn ':adapter:inbound:grpc:grpcTransportQualificationTest'</tspan></text>
|
|
</svg>
|