diff --git a/gitea_job_1650.log b/gitea_job_1650.log new file mode 100644 index 0000000..3828b43 --- /dev/null +++ b/gitea_job_1650.log @@ -0,0 +1,283 @@ +2026-07-05T08:24:23.8076053Z hz-prod-runner(version:v0.6.1) received task 1614 of job build-and-deploy, be triggered by event: push +2026-07-05T08:24:23.8081342Z workflow prepared +2026-07-05T08:24:23.8090386Z evaluating expression 'success()' +2026-07-05T08:24:23.8091057Z expression 'success()' evaluated to 'true' +2026-07-05T08:24:23.8091222Z ๐Ÿš€ Start image=docker.gitea.com/runner-images:ubuntu-latest +2026-07-05T08:24:23.8214115Z ๐Ÿณ docker pull image=docker.gitea.com/runner-images:ubuntu-latest platform= username= forcePull=false +2026-07-05T08:24:23.8214307Z ๐Ÿณ docker pull docker.gitea.com/runner-images:ubuntu-latest +2026-07-05T08:24:23.8707565Z Image exists? true +2026-07-05T08:24:23.9476583Z ๐Ÿณ docker create image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default" +2026-07-05T08:24:24.0717734Z Created container name=GITEA-ACTIONS-TASK-1614-WORKFLOW-Deploy-to-Production-JOB-Build-f5851151f62d4030bfebd08d7cf94199d25a0210eab3b7d87da13e22b80726f8 id=c16782319a91cb838aab200a3cb8b94a951835b77aa5b1a35c4ec2f6914d126c from image docker.gitea.com/runner-images:ubuntu-latest (platform: ) +2026-07-05T08:24:24.0718287Z ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=X64 RUNNER_TEMP=/tmp LANG=C.UTF-8] +2026-07-05T08:24:24.0718556Z ๐Ÿณ docker run image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default" +2026-07-05T08:24:24.0718672Z Starting container: c16782319a91cb838aab200a3cb8b94a951835b77aa5b1a35c4ec2f6914d126c +2026-07-05T08:24:24.2425411Z Started container: c16782319a91cb838aab200a3cb8b94a951835b77aa5b1a35c4ec2f6914d126c +2026-07-05T08:24:24.4158492Z Writing entry to tarball workflow/event.json len:14285 +2026-07-05T08:24:24.4159228Z Writing entry to tarball workflow/envs.txt len:0 +2026-07-05T08:24:24.4159340Z Extracting content to '/var/run/act/' +2026-07-05T08:24:24.4357502Z โ˜ git clone 'https://github.com/actions/checkout' # ref=v3 +2026-07-05T08:24:24.4357824Z cloning https://github.com/actions/checkout to /root/.cache/act/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6 +2026-07-05T08:24:25.1747438Z Unable to pull refs/heads/v3: worktree contains unstaged changes +2026-07-05T08:24:25.1748148Z Cloned https://github.com/actions/checkout to /root/.cache/act/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6 +2026-07-05T08:24:25.1903883Z Checked out v3 +2026-07-05T08:24:25.2014736Z โ˜ git clone 'https://github.com/actions/setup-dotnet' # ref=v3 +2026-07-05T08:24:25.2015038Z cloning https://github.com/actions/setup-dotnet to /root/.cache/act/8898382b0f6cef5aff6cbffba0ea659b6a793b90db5bd6b7154c991244ac150a +2026-07-05T08:24:25.8337405Z Unable to pull refs/heads/v3: non-fast-forward update +2026-07-05T08:24:25.8337884Z Cloned https://github.com/actions/setup-dotnet to /root/.cache/act/8898382b0f6cef5aff6cbffba0ea659b6a793b90db5bd6b7154c991244ac150a +2026-07-05T08:24:25.8644294Z Checked out v3 +2026-07-05T08:24:25.8750243Z โ˜ git clone 'https://github.com/actions/setup-python' # ref=v4 +2026-07-05T08:24:25.8752605Z cloning https://github.com/actions/setup-python to /root/.cache/act/017c8329dab061ed91a63e437cf9da23a34af4639decee972daea7246a79f180 +2026-07-05T08:24:26.5202071Z Unable to pull refs/heads/v4: non-fast-forward update +2026-07-05T08:24:26.5202665Z Cloned https://github.com/actions/setup-python to /root/.cache/act/017c8329dab061ed91a63e437cf9da23a34af4639decee972daea7246a79f180 +2026-07-05T08:24:26.5361045Z Checked out v4 +2026-07-05T08:24:26.5653178Z evaluating expression '' +2026-07-05T08:24:26.5653858Z expression '' evaluated to 'true' +2026-07-05T08:24:26.5653984Z โญ Run Main Checkout Code +2026-07-05T08:24:26.5654169Z Writing entry to tarball workflow/outputcmd.txt len:0 +2026-07-05T08:24:26.5654317Z Writing entry to tarball workflow/statecmd.txt len:0 +2026-07-05T08:24:26.5654421Z Writing entry to tarball workflow/pathcmd.txt len:0 +2026-07-05T08:24:26.5654533Z Writing entry to tarball workflow/envs.txt len:0 +2026-07-05T08:24:26.5654614Z Writing entry to tarball workflow/SUMMARY.md len:0 +2026-07-05T08:24:26.5654721Z Extracting content to '/var/run/act' +2026-07-05T08:24:26.5681234Z ::group::Run Checkout Code +2026-07-05T08:24:27.0896659Z (node:18) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-07-05T08:24:27.0896929Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-07-05T08:24:27.0919741Z ::add-matcher::/run/act/actions/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6/dist/problem-matcher.json +2026-07-05T08:24:27.0919903Z Syncing repository: kjh2064/QuantEngineByItz +2026-07-05T08:24:27.0920081Z ::group::Getting Git version info +2026-07-05T08:24:27.0920203Z Working directory is '/workspace/kjh2064/QuantEngineByItz' +2026-07-05T08:24:27.1004652Z [command]/usr/bin/git version +2026-07-05T08:24:27.1297852Z git version 2.54.0 +2026-07-05T08:24:27.1402303Z ::endgroup:: +2026-07-05T08:24:27.1460010Z Temporarily overriding HOME='/tmp/799b93d8-b69d-4ab0-993e-4d24dd4c2bad' before making global git config changes +2026-07-05T08:24:27.1461310Z Adding repository directory to the temporary git global config as a safe directory +2026-07-05T08:24:27.1465666Z [command]/usr/bin/git config --global --add safe.directory /workspace/kjh2064/QuantEngineByItz +2026-07-05T08:24:27.1541686Z Deleting the contents of '/workspace/kjh2064/QuantEngineByItz' +2026-07-05T08:24:27.1562166Z ::group::Initializing the repository +2026-07-05T08:24:27.1567258Z [command]/usr/bin/git init /workspace/kjh2064/QuantEngineByItz +2026-07-05T08:24:27.1632786Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-07-05T08:24:27.1633574Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-07-05T08:24:27.1633862Z hint: to use in all of your new repositories, which will suppress this warning, +2026-07-05T08:24:27.1634001Z hint: call: +2026-07-05T08:24:27.1634116Z hint: +2026-07-05T08:24:27.1634247Z hint: git config --global init.defaultBranch +2026-07-05T08:24:27.1634372Z hint: +2026-07-05T08:24:27.1634475Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-07-05T08:24:27.1634617Z hint: 'development'. The just-created branch can be renamed via this command: +2026-07-05T08:24:27.1634784Z hint: +2026-07-05T08:24:27.1634892Z hint: git branch -m +2026-07-05T08:24:27.1635010Z hint: +2026-07-05T08:24:27.1635224Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-07-05T08:24:27.1635382Z Initialized empty Git repository in /workspace/kjh2064/QuantEngineByItz/.git/ +2026-07-05T08:24:27.1669327Z [command]/usr/bin/git remote add origin http://gitea:3000/kjh2064/QuantEngineByItz +2026-07-05T08:24:27.1747686Z ::endgroup:: +2026-07-05T08:24:27.1747992Z ::group::Disabling automatic garbage collection +2026-07-05T08:24:27.1748174Z [command]/usr/bin/git config --local gc.auto 0 +2026-07-05T08:24:27.1789180Z ::endgroup:: +2026-07-05T08:24:27.1789647Z ::group::Setting up auth +2026-07-05T08:24:27.1808901Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-05T08:24:27.1873085Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-05T08:24:27.2222561Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader +2026-07-05T08:24:27.2351944Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/gitea\:3000\/\.extraheader' && git config --local --unset-all 'http.http://gitea:3000/.extraheader' || :" +2026-07-05T08:24:27.2790735Z [command]/usr/bin/git config --local http.http://gitea:3000/.extraheader AUTHORIZATION: basic *** +2026-07-05T08:24:27.2894468Z ::endgroup:: +2026-07-05T08:24:27.2895176Z ::group::Fetching the repository +2026-07-05T08:24:27.2895351Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +7daedbff3cec839e16c1d2f9b6584ba45dc3cdf9:refs/remotes/origin/main +2026-07-05T08:24:27.3773335Z remote: Enumerating objects: 2437, done. +2026-07-05T08:24:27.8995283Z remote: Counting objects: 0% (1/2437) remote: Counting objects: 1% (25/2437) remote: Counting objects: 2% (49/2437) remote: Counting objects: 3% (74/2437) remote: Counting objects: 4% (98/2437) remote: Counting objects: 5% (122/2437) remote: Counting objects: 6% (147/2437) remote: Counting objects: 7% (171/2437) remote: Counting objects: 8% (195/2437) remote: Counting objects: 9% (220/2437) remote: Counting objects: 10% (244/2437) remote: Counting objects: 11% (269/2437) remote: Counting objects: 12% (293/2437) remote: Counting objects: 13% (317/2437) remote: Counting objects: 14% (342/2437) remote: Counting objects: 15% (366/2437) remote: Counting objects: 16% (390/2437) remote: Counting objects: 17% (415/2437) remote: Counting objects: 18% (439/2437) remote: Counting objects: 19% (464/2437) remote: Counting objects: 20% (488/2437) remote: Counting objects: 21% (512/2437) remote: Counting objects: 22% (537/2437) remote: Counting objects: 23% (561/2437) remote: Counting objects: 24% (585/2437) remote: Counting objects: 25% (610/2437) remote: Counting objects: 26% (634/2437) remote: Counting objects: 27% (658/2437) remote: Counting objects: 28% (683/2437) remote: Counting objects: 29% (707/2437) remote: Counting objects: 30% (732/2437) remote: Counting objects: 31% (756/2437) remote: Counting objects: 32% (780/2437) remote: Counting objects: 33% (805/2437) remote: Counting objects: 34% (829/2437) remote: Counting objects: 35% (853/2437) remote: Counting objects: 36% (878/2437) remote: Counting objects: 37% (902/2437) remote: Counting objects: 38% (927/2437) remote: Counting objects: 39% (951/2437) remote: Counting objects: 40% (975/2437) remote: Counting objects: 41% (1000/2437) remote: Counting objects: 42% (1024/2437) remote: Counting objects: 43% (1048/2437) remote: Counting objects: 44% (1073/2437) remote: Counting objects: 45% (1097/2437) remote: Counting objects: 46% (1122/2437) remote: Counting objects: 47% (1146/2437) remote: Counting objects: 48% (1170/2437) remote: Counting objects: 49% (1195/2437) remote: Counting objects: 50% (1219/2437) remote: Counting objects: 51% (1243/2437) remote: Counting objects: 52% (1268/2437) remote: Counting objects: 53% (1292/2437) remote: Counting objects: 54% (1316/2437) remote: Counting objects: 55% (1341/2437) remote: Counting objects: 56% (1365/2437) remote: Counting objects: 57% (1390/2437) remote: Counting objects: 58% (1414/2437) remote: Counting objects: 59% (1438/2437) remote: Counting objects: 60% (1463/2437) remote: Counting objects: 61% (1487/2437) remote: Counting objects: 62% (1511/2437) remote: Counting objects: 63% (1536/2437) remote: Counting objects: 64% (1560/2437) remote: Counting objects: 65% (1585/2437) remote: Counting objects: 66% (1609/2437) remote: Counting objects: 67% (1633/2437) remote: Counting objects: 68% (1658/2437) remote: Counting objects: 69% (1682/2437) remote: Counting objects: 70% (1706/2437) remote: Counting objects: 71% (1731/2437) remote: Counting objects: 72% (1755/2437) remote: Counting objects: 73% (1780/2437) remote: Counting objects: 74% (1804/2437) remote: Counting objects: 75% (1828/2437) remote: Counting objects: 76% (1853/2437) remote: Counting objects: 77% (1877/2437) remote: Counting objects: 78% (1901/2437) remote: Counting objects: 79% (1926/2437) remote: Counting objects: 80% (1950/2437) remote: Counting objects: 81% (1974/2437) remote: Counting objects: 82% (1999/2437) remote: Counting objects: 83% (2023/2437) remote: Counting objects: 84% (2048/2437) remote: Counting objects: 85% (2072/2437) remote: Counting objects: 86% (2096/2437) remote: Counting objects: 87% (2121/2437) remote: Counting objects: 88% (2145/2437) remote: Counting objects: 89% (2169/2437) remote: Counting objects: 90% (2194/2437) remote: Counting objects: 91% (2218/2437) remote: Counting objects: 92% (2243/2437) remote: Counting objects: 93% (2267/2437) remote: Counting objects: 94% (2291/2437) remote: Counting objects: 95% (2316/2437) remote: Counting objects: 96% (2340/2437) remote: Counting objects: 97% (2364/2437) remote: Counting objects: 98% (2389/2437) remote: Counting objects: 99% (2413/2437) remote: Counting objects: 100% (2437/2437) remote: Counting objects: 100% (2437/2437), done. +2026-07-05T08:24:27.8998169Z remote: Compressing objects: 0% (1/1694) remote: Compressing objects: 1% (17/1694) remote: Compressing objects: 2% (34/1694) remote: Compressing objects: 3% (51/1694) remote: Compressing objects: 4% (68/1694) remote: Compressing objects: 5% (85/1694) remote: Compressing objects: 6% (102/1694) remote: Compressing objects: 7% (119/1694) remote: Compressing objects: 8% (136/1694) remote: Compressing objects: 9% (153/1694) remote: Compressing objects: 10% (170/1694) remote: Compressing objects: 11% (187/1694) remote: Compressing objects: 12% (204/1694) remote: Compressing objects: 13% (221/1694) remote: Compressing objects: 14% (238/1694) remote: Compressing objects: 15% (255/1694) remote: Compressing objects: 16% (272/1694) remote: Compressing objects: 17% (288/1694) remote: Compressing objects: 18% (305/1694) remote: Compressing objects: 19% (322/1694) remote: Compressing objects: 20% (339/1694) remote: Compressing objects: 21% (356/1694) remote: Compressing objects: 22% (373/1694) remote: Compressing objects: 23% (390/1694) remote: Compressing objects: 24% (407/1694) remote: Compressing objects: 25% (424/1694) remote: Compressing objects: 26% (441/1694) remote: Compressing objects: 27% (458/1694) remote: Compressing objects: 28% (475/1694) remote: Compressing objects: 29% (492/1694) remote: Compressing objects: 30% (509/1694) remote: Compressing objects: 31% (526/1694) remote: Compressing objects: 32% (543/1694) remote: Compressing objects: 33% (560/1694) remote: Compressing objects: 34% (576/1694) remote: Compressing objects: 35% (593/1694) remote: Compressing objects: 36% (610/1694) remote: Compressing objects: 37% (627/1694) remote: Compressing objects: 38% (644/1694) remote: Compressing objects: 39% (661/1694) remote: Compressing objects: 40% (678/1694) remote: Compressing objects: 41% (695/1694) remote: Compressing objects: 42% (712/1694) remote: Compressing objects: 43% (729/1694) remote: Compressing objects: 44% (746/1694) remote: Compressing objects: 45% (763/1694) remote: Compressing objects: 46% (780/1694) remote: Compressing objects: 47% (797/1694) remote: Compressing objects: 48% (814/1694) remote: Compressing objects: 49% (831/1694) remote: Compressing objects: 50% (847/1694) remote: Compressing objects: 51% (864/1694) remote: Compressing objects: 52% (881/1694) remote: Compressing objects: 53% (898/1694) remote: Compressing objects: 54% (915/1694) remote: Compressing objects: 55% (932/1694) remote: Compressing objects: 56% (949/1694) remote: Compressing objects: 57% (966/1694) remote: Compressing objects: 58% (983/1694) remote: Compressing objects: 59% (1000/1694) remote: Compressing objects: 60% (1017/1694) remote: Compressing objects: 61% (1034/1694) remote: Compressing objects: 62% (1051/1694) remote: Compressing objects: 63% (1068/1694) remote: Compressing objects: 64% (1085/1694) remote: Compressing objects: 65% (1102/1694) remote: Compressing objects: 66% (1119/1694) remote: Compressing objects: 67% (1135/1694) remote: Compressing objects: 68% (1152/1694) remote: Compressing objects: 69% (1169/1694) remote: Compressing objects: 70% (1186/1694) remote: Compressing objects: 71% (1203/1694) remote: Compressing objects: 72% (1220/1694) remote: Compressing objects: 73% (1237/1694) remote: Compressing objects: 74% (1254/1694) remote: Compressing objects: 75% (1271/1694) remote: Compressing objects: 76% (1288/1694) remote: Compressing objects: 77% (1305/1694) remote: Compressing objects: 78% (1322/1694) remote: Compressing objects: 79% (1339/1694) remote: Compressing objects: 80% (1356/1694) remote: Compressing objects: 81% (1373/1694) remote: Compressing objects: 82% (1390/1694) remote: Compressing objects: 83% (1407/1694) remote: Compressing objects: 84% (1423/1694) remote: Compressing objects: 85% (1440/1694) remote: Compressing objects: 86% (1457/1694) remote: Compressing objects: 87% (1474/1694) remote: Compressing objects: 88% (1491/1694) remote: Compressing objects: 89% (1508/1694) remote: Compressing objects: 90% (1525/1694) remote: Compressing objects: 91% (1542/1694) remote: Compressing objects: 92% (1559/1694) remote: Compressing objects: 93% (1576/1694) remote: Compressing objects: 94% (1593/1694) remote: Compressing objects: 95% (1610/1694) remote: Compressing objects: 96% (1627/1694) remote: Compressing objects: 97% (1644/1694) remote: Compressing objects: 98% (1661/1694) remote: Compressing objects: 99% (1678/1694) remote: Compressing objects: 100% (1694/1694) remote: Compressing objects: 100% (1694/1694), done. +2026-07-05T08:24:29.5934717Z Receiving objects: 0% (1/2437) Receiving objects: 1% (25/2437) Receiving objects: 2% (49/2437) Receiving objects: 3% (74/2437) Receiving objects: 4% (98/2437) Receiving objects: 5% (122/2437) Receiving objects: 6% (147/2437) Receiving objects: 7% (171/2437) Receiving objects: 8% (195/2437) Receiving objects: 9% (220/2437) Receiving objects: 10% (244/2437) Receiving objects: 11% (269/2437) Receiving objects: 12% (293/2437) Receiving objects: 13% (317/2437) Receiving objects: 14% (342/2437) Receiving objects: 15% (366/2437) Receiving objects: 16% (390/2437) Receiving objects: 17% (415/2437) Receiving objects: 18% (439/2437) Receiving objects: 19% (464/2437) Receiving objects: 20% (488/2437) Receiving objects: 21% (512/2437) Receiving objects: 22% (537/2437) Receiving objects: 23% (561/2437) Receiving objects: 24% (585/2437) Receiving objects: 25% (610/2437) Receiving objects: 26% (634/2437) Receiving objects: 27% (658/2437) Receiving objects: 28% (683/2437) Receiving objects: 29% (707/2437) Receiving objects: 30% (732/2437) Receiving objects: 31% (756/2437) Receiving objects: 32% (780/2437) Receiving objects: 33% (805/2437) Receiving objects: 34% (829/2437) Receiving objects: 35% (853/2437) Receiving objects: 36% (878/2437) Receiving objects: 37% (902/2437) Receiving objects: 38% (927/2437) Receiving objects: 39% (951/2437) Receiving objects: 40% (975/2437) Receiving objects: 41% (1000/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 42% (1024/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 43% (1048/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 44% (1073/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 45% (1097/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 46% (1122/2437), 3.29 MiB | 6.56 MiB/s Receiving objects: 46% (1142/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 47% (1146/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 48% (1170/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 49% (1195/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 50% (1219/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 51% (1243/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 52% (1268/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 53% (1292/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 54% (1316/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 55% (1341/2437), 11.46 MiB | 11.45 MiB/s Receiving objects: 56% (1365/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 57% (1390/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 58% (1414/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 59% (1438/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 60% (1463/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 61% (1487/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 62% (1511/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 63% (1536/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 64% (1560/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 65% (1585/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 66% (1609/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 67% (1633/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 68% (1658/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 69% (1682/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 70% (1706/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 71% (1731/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 72% (1755/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 73% (1780/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 74% (1804/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 75% (1828/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 76% (1853/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 77% (1877/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 78% (1901/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 79% (1926/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 80% (1950/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 81% (1974/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 82% (1999/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 83% (2023/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 84% (2048/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 85% (2072/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 86% (2096/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 87% (2121/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 88% (2145/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 89% (2169/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 90% (2194/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 91% (2218/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 92% (2243/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 93% (2267/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 94% (2291/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 95% (2316/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 96% (2340/2437), 22.86 MiB | 15.23 MiB/s remote: Total 2437 (delta 740), reused 2047 (delta 702), pack-reused 0 (from 0) +2026-07-05T08:24:29.6116744Z Receiving objects: 97% (2364/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 98% (2389/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 99% (2413/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 100% (2437/2437), 22.86 MiB | 15.23 MiB/s Receiving objects: 100% (2437/2437), 27.71 MiB | 16.64 MiB/s, done. +2026-07-05T08:24:29.6560648Z Resolving deltas: 0% (0/740) Resolving deltas: 1% (8/740) Resolving deltas: 2% (15/740) Resolving deltas: 3% (23/740) Resolving deltas: 4% (30/740) Resolving deltas: 5% (37/740) Resolving deltas: 6% (45/740) Resolving deltas: 7% (52/740) Resolving deltas: 8% (60/740) Resolving deltas: 9% (67/740) Resolving deltas: 10% (74/740) Resolving deltas: 11% (82/740) Resolving deltas: 12% (89/740) Resolving deltas: 13% (97/740) Resolving deltas: 14% (104/740) Resolving deltas: 15% (111/740) Resolving deltas: 16% (119/740) Resolving deltas: 17% (126/740) Resolving deltas: 18% (134/740) Resolving deltas: 19% (141/740) Resolving deltas: 20% (148/740) Resolving deltas: 21% (156/740) Resolving deltas: 22% (163/740) Resolving deltas: 23% (171/740) Resolving deltas: 24% (178/740) Resolving deltas: 25% (185/740) Resolving deltas: 26% (193/740) Resolving deltas: 27% (200/740) Resolving deltas: 28% (208/740) Resolving deltas: 29% (215/740) Resolving deltas: 30% (222/740) Resolving deltas: 31% (230/740) Resolving deltas: 32% (237/740) Resolving deltas: 33% (245/740) Resolving deltas: 34% (252/740) Resolving deltas: 35% (259/740) Resolving deltas: 36% (267/740) Resolving deltas: 37% (274/740) Resolving deltas: 38% (282/740) Resolving deltas: 39% (289/740) Resolving deltas: 40% (296/740) Resolving deltas: 41% (304/740) Resolving deltas: 42% (311/740) Resolving deltas: 43% (319/740) Resolving deltas: 44% (326/740) Resolving deltas: 45% (333/740) Resolving deltas: 46% (341/740) Resolving deltas: 47% (348/740) Resolving deltas: 48% (356/740) Resolving deltas: 49% (363/740) Resolving deltas: 50% (370/740) Resolving deltas: 51% (378/740) Resolving deltas: 52% (385/740) Resolving deltas: 53% (393/740) Resolving deltas: 54% (400/740) Resolving deltas: 55% (407/740) Resolving deltas: 56% (415/740) Resolving deltas: 57% (422/740) Resolving deltas: 58% (430/740) Resolving deltas: 59% (437/740) Resolving deltas: 60% (444/740) Resolving deltas: 61% (452/740) Resolving deltas: 62% (459/740) Resolving deltas: 63% (467/740) Resolving deltas: 64% (474/740) Resolving deltas: 65% (481/740) Resolving deltas: 66% (489/740) Resolving deltas: 67% (496/740) Resolving deltas: 68% (504/740) Resolving deltas: 69% (511/740) Resolving deltas: 70% (518/740) Resolving deltas: 71% (526/740) Resolving deltas: 72% (533/740) Resolving deltas: 73% (541/740) Resolving deltas: 74% (548/740) Resolving deltas: 75% (555/740) Resolving deltas: 76% (563/740) Resolving deltas: 77% (570/740) Resolving deltas: 78% (578/740) Resolving deltas: 79% (585/740) Resolving deltas: 80% (592/740) Resolving deltas: 81% (600/740) Resolving deltas: 82% (607/740) Resolving deltas: 83% (615/740) Resolving deltas: 84% (622/740) Resolving deltas: 85% (629/740) Resolving deltas: 86% (637/740) Resolving deltas: 87% (644/740) Resolving deltas: 88% (652/740) Resolving deltas: 89% (659/740) Resolving deltas: 90% (666/740) Resolving deltas: 91% (674/740) Resolving deltas: 92% (681/740) Resolving deltas: 93% (689/740) Resolving deltas: 94% (696/740) Resolving deltas: 95% (703/740) Resolving deltas: 96% (711/740) Resolving deltas: 97% (718/740) Resolving deltas: 98% (726/740) Resolving deltas: 99% (733/740) Resolving deltas: 100% (740/740) Resolving deltas: 100% (740/740), done. +2026-07-05T08:24:29.6836503Z From http://gitea:3000/kjh2064/QuantEngineByItz +2026-07-05T08:24:29.6836971Z * [new ref] 7daedbff3cec839e16c1d2f9b6584ba45dc3cdf9 -> origin/main +2026-07-05T08:24:29.6877354Z ::endgroup:: +2026-07-05T08:24:29.6877669Z ::group::Determining the checkout info +2026-07-05T08:24:29.6877843Z ::endgroup:: +2026-07-05T08:24:29.6878021Z ::group::Checking out the ref +2026-07-05T08:24:29.6878194Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main +2026-07-05T08:24:30.3563967Z Switched to a new branch 'main' +2026-07-05T08:24:30.3576895Z branch 'main' set up to track 'origin/main'. +2026-07-05T08:24:30.3660528Z ::endgroup:: +2026-07-05T08:24:30.3753572Z [command]/usr/bin/git log -1 --format='%H' +2026-07-05T08:24:30.3809287Z '7daedbff3cec839e16c1d2f9b6584ba45dc3cdf9' +2026-07-05T08:24:30.3859623Z ::remove-matcher owner=checkout-git:: +2026-07-05T08:24:30.4022945Z ::endgroup:: +2026-07-05T08:24:30.4837029Z ::group::Run Setup .NET +2026-07-05T08:24:30.4837280Z with: +2026-07-05T08:24:30.4837404Z dotnet-version: ${{ env.DOTNET_VERSION }} +2026-07-05T08:24:31.9330727Z (node:111) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-07-05T08:24:31.9331386Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-07-05T08:24:31.9375183Z [command]/run/act/actions/8898382b0f6cef5aff6cbffba0ea659b6a793b90db5bd6b7154c991244ac150a/externals/install-dotnet.sh --channel 10.0 +2026-07-05T08:24:32.7505974Z dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.301/dotnet-sdk-10.0.301-linux-x64.tar.gz +2026-07-05T08:24:35.3536946Z dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.301/dotnet-sdk-10.0.301-linux-x64.tar.gz size is 235086718 bytes. +2026-07-05T08:24:35.3540539Z dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.301/dotnet-sdk-10.0.301-linux-x64.tar.gz +2026-07-05T08:24:44.6826953Z dotnet-install: Downloaded file size is 235086718 bytes. +2026-07-05T08:24:44.6827424Z dotnet-install: The remote and local file sizes are equal. +2026-07-05T08:24:44.8527479Z dotnet-install: Installed version is 10.0.301 +2026-07-05T08:24:44.8590248Z dotnet-install: Adding to current process PATH: `/usr/share/dotnet`. Note: This change will be visible only when sourcing script. +2026-07-05T08:24:44.8590947Z dotnet-install: Note that the script does not resolve dependencies during installation. +2026-07-05T08:24:44.8608082Z dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. +2026-07-05T08:24:44.8608931Z dotnet-install: Installation finished successfully. +2026-07-05T08:24:44.8660522Z ##[add-matcher]/run/act/actions/8898382b0f6cef5aff6cbffba0ea659b6a793b90db5bd6b7154c991244ac150a/.github/csc.json +2026-07-05T08:24:44.8830599Z ::endgroup:: +2026-07-05T08:24:44.9539874Z ::group::Run Setup Python +2026-07-05T08:24:44.9540321Z with: +2026-07-05T08:24:44.9540526Z python-version: 3.10 +2026-07-05T08:24:45.8740810Z ::group::Installed versions +2026-07-05T08:24:45.8807869Z (node:443) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-07-05T08:24:45.8808198Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-07-05T08:24:45.8808322Z Successfully set up CPython (3.10.20) +2026-07-05T08:24:45.8808998Z ::endgroup:: +2026-07-05T08:24:45.8809264Z ##[add-matcher]/run/act/actions/017c8329dab061ed91a63e437cf9da23a34af4639decee972daea7246a79f180/.github/python.json +2026-07-05T08:24:45.8947861Z ::endgroup:: +2026-07-05T08:24:46.0576657Z ::group::Run pip install pyyaml openpyxl requests +2026-07-05T08:24:46.0576987Z pip install pyyaml openpyxl requests +2026-07-05T08:24:46.0577097Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-07-05T08:24:46.0577201Z ::endgroup:: +2026-07-05T08:24:46.9548533Z Requirement already satisfied: pyyaml in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (6.0.3) +2026-07-05T08:24:46.9557002Z Requirement already satisfied: openpyxl in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (3.1.5) +2026-07-05T08:24:46.9557305Z Requirement already satisfied: requests in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (2.34.2) +2026-07-05T08:24:46.9586488Z Requirement already satisfied: et-xmlfile in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (from openpyxl) (2.0.0) +2026-07-05T08:24:46.9617240Z Requirement already satisfied: charset_normalizer<4,>=2 in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (from requests) (3.4.7) +2026-07-05T08:24:46.9617521Z Requirement already satisfied: idna<4,>=2.5 in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (from requests) (3.18) +2026-07-05T08:24:46.9626932Z Requirement already satisfied: urllib3<3,>=1.26 in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (from requests) (2.7.0) +2026-07-05T08:24:46.9627333Z Requirement already satisfied: certifi>=2023.5.7 in /opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/site-packages (from requests) (2026.6.17) +2026-07-05T08:24:46.9946881Z WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. +2026-07-05T08:24:47.2394592Z ::group::Run echo "๐Ÿ” Running critical CI validations..." +2026-07-05T08:24:47.2394939Z echo "๐Ÿ” Running critical CI validations..." +2026-07-05T08:24:47.2395061Z python3 tools/validate_no_direct_api_trading_v1.py || exit 1 +2026-07-05T08:24:47.2395150Z python3 tools/validate_specs.py || exit 1 +2026-07-05T08:24:47.2395239Z echo "โœ… All critical validations passed" +2026-07-05T08:24:47.2395322Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-07-05T08:24:47.2395416Z ::endgroup:: +2026-07-05T08:24:47.3007180Z ๐Ÿ” Running critical CI validations... +2026-07-05T08:24:47.5787839Z NO_DIRECT_API_TRADING_GATE: PASS +2026-07-05T08:25:10.6298546Z โœ… All critical validations passed +2026-07-05T08:25:10.7719032Z ::group::Run mkdir -p Temp +2026-07-05T08:25:10.7719348Z mkdir -p Temp +2026-07-05T08:25:10.7719462Z if [ ! -f Temp/final_decision_packet_active.json ]; then +2026-07-05T08:25:10.7719552Z echo '{"active_decision": "PASS", "details": "CI dummy packet"}' > Temp/final_decision_packet_active.json +2026-07-05T08:25:10.7719652Z fi +2026-07-05T08:25:10.7719724Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-07-05T08:25:10.7719813Z ::endgroup:: +2026-07-05T08:25:10.9554862Z ::group::Run dotnet restore src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj +2026-07-05T08:25:10.9555201Z dotnet restore src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj +2026-07-05T08:25:10.9555317Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-07-05T08:25:10.9555418Z ::endgroup:: +2026-07-05T08:25:11.2158798Z +2026-07-05T08:25:11.2159430Z Welcome to .NET 10.0! +2026-07-05T08:25:11.2159590Z --------------------- +2026-07-05T08:25:11.2159680Z SDK Version: 10.0.301 +2026-07-05T08:25:11.2159753Z +2026-07-05T08:25:11.2159826Z Telemetry +2026-07-05T08:25:11.2159900Z --------- +2026-07-05T08:25:11.2159996Z The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell. +2026-07-05T08:25:11.2160125Z +2026-07-05T08:25:11.2160202Z Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry +2026-07-05T08:25:11.6398661Z +2026-07-05T08:25:11.6399693Z ---------------- +2026-07-05T08:25:11.6399856Z Installed an ASP.NET Core HTTPS development certificate. +2026-07-05T08:25:11.6399963Z To trust the certificate, run 'dotnet dev-certs https --trust' +2026-07-05T08:25:11.6400050Z Learn about HTTPS: https://aka.ms/dotnet-https +2026-07-05T08:25:11.6400128Z +2026-07-05T08:25:11.6400196Z ---------------- +2026-07-05T08:25:11.6400266Z Write your first app: https://aka.ms/dotnet-hello-world +2026-07-05T08:25:11.6400600Z Find out what's new: https://aka.ms/dotnet-whats-new +2026-07-05T08:25:11.6400684Z Explore documentation: https://aka.ms/dotnet-docs +2026-07-05T08:25:11.6400757Z Report issues and find source on GitHub: https://github.com/dotnet/core +2026-07-05T08:25:11.6400844Z Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli +2026-07-05T08:25:11.6400929Z -------------------------------------------------------------------------------------- +2026-07-05T08:25:12.7274097Z Determining projects to restore... +2026-07-05T08:25:17.0248126Z Restored /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Infrastructure/QuantEngine.Infrastructure.csproj (in 2.3 sec). +2026-07-05T08:25:17.9183676Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:17.9184459Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web depends on Microsoft.AspNetCore.Components.WebAssembly.Server (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:17.9198374Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1903: Package 'Newtonsoft.Json' 11.0.1 has a known high severity vulnerability, https://github.com/advisories/GHSA-5crp-9r3c-p9vr +2026-07-05T08:25:18.1176478Z Restored /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj (in 3.49 sec). +2026-07-05T08:25:18.1243647Z Restored /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Core/QuantEngine.Core.csproj (in 2 ms). +2026-07-05T08:25:18.1330698Z Restored /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/QuantEngine.Application.csproj (in 2 ms). +2026-07-05T08:25:21.3683087Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.Authorization (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25164.1 was resolved instead. [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj] +2026-07-05T08:25:21.3687102Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj] +2026-07-05T08:25:21.4287276Z Restored /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj (in 4.23 sec). +2026-07-05T08:25:21.6959738Z ::group::Run dotnet build src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj \ +2026-07-05T08:25:21.6960081Z dotnet build src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj \ +2026-07-05T08:25:21.6960199Z -c Release \ +2026-07-05T08:25:21.6960274Z --no-restore +2026-07-05T08:25:21.6960357Z shell: bash --noprofile --norc -e -o pipefail {0} +2026-07-05T08:25:21.6960450Z ::endgroup:: +2026-07-05T08:25:23.4026908Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:23.4027597Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web depends on Microsoft.AspNetCore.Components.WebAssembly.Server (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:23.4027771Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1903: Package 'Newtonsoft.Json' 11.0.1 has a known high severity vulnerability, https://github.com/advisories/GHSA-5crp-9r3c-p9vr +2026-07-05T08:25:29.2446427Z QuantEngine.Core -> /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Core/bin/Release/net10.0/QuantEngine.Core.dll +2026-07-05T08:25:29.3002803Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.Authorization (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:29.3003526Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:30.5355463Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/Services/KisApiPriceSource.cs(54,30): warning CS0168: The variable 'ex' is declared but never used [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/QuantEngine.Application.csproj] +2026-07-05T08:25:30.5356602Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/Services/KisApiPriceSource.cs(73,30): warning CS0168: The variable 'ex' is declared but never used [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/QuantEngine.Application.csproj] +2026-07-05T08:25:30.5798677Z QuantEngine.Application -> /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/bin/Release/net10.0/QuantEngine.Application.dll +2026-07-05T08:25:38.5574414Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor(171,30): warning CS0108: 'Portfolio.Assets' hides inherited member 'ComponentBase.Assets'. Use the new keyword if hiding was intended. [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.5579624Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Pages/Users.razor(78,29): error CS0542: 'Users': member names cannot be the same as their enclosing type [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.5580085Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor(45,13): error CS0246: The type or namespace name 'MudDialogInstance' could not be found (are you missing a using directive or an assembly reference?) [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.5941993Z QuantEngine.Infrastructure -> /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Infrastructure/bin/Release/net10.0/QuantEngine.Infrastructure.dll +2026-07-05T08:25:38.6151461Z +2026-07-05T08:25:38.6171719Z Build FAILED. +2026-07-05T08:25:38.6175687Z +2026-07-05T08:25:38.6176748Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:38.6177863Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1603: QuantEngine.Web depends on Microsoft.AspNetCore.Components.WebAssembly.Server (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:38.6178180Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj : warning NU1903: Package 'Newtonsoft.Json' 11.0.1 has a known high severity vulnerability, https://github.com/advisories/GHSA-5crp-9r3c-p9vr +2026-07-05T08:25:38.6179184Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.Authorization (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.Authorization 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:38.6179663Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj : warning NU1603: QuantEngine.Web.Client depends on Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.0-preview.2.25120.18) but Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25120.18 was not found. Microsoft.AspNetCore.Components.WebAssembly 10.0.0-preview.2.25164.1 was resolved instead. +2026-07-05T08:25:38.6180443Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/Services/KisApiPriceSource.cs(54,30): warning CS0168: The variable 'ex' is declared but never used [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/QuantEngine.Application.csproj] +2026-07-05T08:25:38.6180659Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/Services/KisApiPriceSource.cs(73,30): warning CS0168: The variable 'ex' is declared but never used [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Application/QuantEngine.Application.csproj] +2026-07-05T08:25:38.6181644Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor(171,30): warning CS0108: 'Portfolio.Assets' hides inherited member 'ComponentBase.Assets'. Use the new keyword if hiding was intended. [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.6183260Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Pages/Users.razor(78,29): error CS0542: 'Users': member names cannot be the same as their enclosing type [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.6184533Z /workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor(45,13): error CS0246: The type or namespace name 'MudDialogInstance' could not be found (are you missing a using directive or an assembly reference?) [/workspace/kjh2064/QuantEngineByItz/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj] +2026-07-05T08:25:38.6185827Z 8 Warning(s) +2026-07-05T08:25:38.6186704Z 2 Error(s) +2026-07-05T08:25:38.6188370Z +2026-07-05T08:25:38.6189258Z Time Elapsed 00:00:16.39 +2026-07-05T08:25:38.6488173Z โŒ Failure - Main Build Release +2026-07-05T08:25:38.6666374Z exitcode '1': failure +2026-07-05T08:25:39.0158825Z evaluating expression 'success()' +2026-07-05T08:25:39.0159586Z expression 'success()' evaluated to 'false' +2026-07-05T08:25:39.0159749Z Skipping step 'Setup Python' due to 'success()' +2026-07-05T08:25:39.0510514Z expression '${{ env.DOTNET_VERSION }}' rewritten to 'format('{0}', env.DOTNET_VERSION)' +2026-07-05T08:25:39.0511405Z evaluating expression 'format('{0}', env.DOTNET_VERSION)' +2026-07-05T08:25:39.0512313Z expression 'format('{0}', env.DOTNET_VERSION)' evaluated to '%!t(string=10.0.x)' +2026-07-05T08:25:39.0639917Z evaluating expression 'success()' +2026-07-05T08:25:39.0640399Z expression 'success()' evaluated to 'false' +2026-07-05T08:25:39.0640550Z Skipping step 'Setup .NET' due to 'success()' +2026-07-05T08:25:39.1162095Z evaluating expression 'always()' +2026-07-05T08:25:39.1162892Z expression 'always()' evaluated to 'true' +2026-07-05T08:25:39.1163019Z โญ Run Post Checkout Code +2026-07-05T08:25:39.1163210Z Writing entry to tarball workflow/outputcmd.txt len:0 +2026-07-05T08:25:39.1163356Z Writing entry to tarball workflow/statecmd.txt len:0 +2026-07-05T08:25:39.1163453Z Writing entry to tarball workflow/pathcmd.txt len:0 +2026-07-05T08:25:39.1163553Z Writing entry to tarball workflow/envs.txt len:0 +2026-07-05T08:25:39.1163633Z Writing entry to tarball workflow/SUMMARY.md len:0 +2026-07-05T08:25:39.1163750Z Extracting content to '/var/run/act' +2026-07-05T08:25:39.1268382Z run post step for 'Checkout Code' +2026-07-05T08:25:39.1269652Z executing remote job container: [node /var/run/act/actions/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6/dist/index.js] +2026-07-05T08:25:39.1824551Z ๐Ÿณ docker exec cmd=[node /var/run/act/actions/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6/dist/index.js] user= workdir= +2026-07-05T08:25:39.1824903Z Exec command '[node /var/run/act/actions/656c968832d266db0fe5f8f638000eea9e6a5501569cb9a87c7fdaefedb6a0b6/dist/index.js]' +2026-07-05T08:25:39.1825396Z Working directory '/workspace/kjh2064/QuantEngineByItz' +2026-07-05T08:25:39.4025426Z (node:647) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-07-05T08:25:39.4026184Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-07-05T08:25:39.4074114Z [command]/usr/bin/git version +2026-07-05T08:25:39.4148774Z git version 2.54.0 +2026-07-05T08:25:39.4197862Z *** +2026-07-05T08:25:39.4223948Z Temporarily overriding HOME='/tmp/92792cf1-41d8-4f15-a28d-05b232a285fa' before making global git config changes +2026-07-05T08:25:39.4227855Z Adding repository directory to the temporary git global config as a safe directory +2026-07-05T08:25:39.4236916Z [command]/usr/bin/git config --global --add safe.directory /workspace/kjh2064/QuantEngineByItz +2026-07-05T08:25:39.4300334Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-07-05T08:25:39.4362912Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-07-05T08:25:39.4681937Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader +2026-07-05T08:25:39.4709653Z http.http://gitea:3000/.extraheader +2026-07-05T08:25:39.4727166Z [command]/usr/bin/git config --local --unset-all http.http://gitea:3000/.extraheader +2026-07-05T08:25:39.4763303Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/gitea\:3000\/\.extraheader' && git config --local --unset-all 'http.http://gitea:3000/.extraheader' || :" +2026-07-05T08:25:39.5478678Z โœ… Success - Post Checkout Code +2026-07-05T08:25:39.5586855Z Cleaning up container for job Build & Deploy to Production +2026-07-05T08:25:39.9590095Z Removed container: c16782319a91cb838aab200a3cb8b94a951835b77aa5b1a35c4ec2f6914d126c +2026-07-05T08:25:39.9601699Z ๐Ÿณ docker volume rm GITEA-ACTIONS-TASK-1614-WORKFLOW-Deploy-to-Production-JOB-Build-f5851151f62d4030bfebd08d7cf94199d25a0210eab3b7d87da13e22b80726f8 +2026-07-05T08:25:40.0005747Z ๐Ÿณ docker volume rm GITEA-ACTIONS-TASK-1614-WORKFLOW-Deploy-to-Production-JOB-Build-f5851151f62d4030bfebd08d7cf94199d25a0210eab3b7d87da13e22b80726f8-env +2026-07-05T08:25:40.1224351Z ๐Ÿ Job failed +2026-07-05T08:25:40.1406401Z Job 'Build & Deploy to Production' failed diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..a5b4c1a --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,45 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './tests/e2e', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'list', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: 'http://localhost:5265', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + screenshot: 'only-on-failure', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'dotnet run --project src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj --launch-profile http', + url: 'http://localhost:5265/login', + reuseExistingServer: !process.env.CI, + stdout: 'ignore', + stderr: 'pipe', + timeout: 120 * 1000, + }, +}); diff --git a/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj b/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj index 83f52ca..8f18733 100644 --- a/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj +++ b/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj @@ -10,6 +10,7 @@ + @@ -31,13 +32,4 @@ true - - - - - - - - - diff --git a/src/dotnet/QuantEngine.Web/Services/SchedulerService.cs b/src/dotnet/QuantEngine.Web/Services/SchedulerService.cs index 56c40ba..301edfc 100644 --- a/src/dotnet/QuantEngine.Web/Services/SchedulerService.cs +++ b/src/dotnet/QuantEngine.Web/Services/SchedulerService.cs @@ -2,6 +2,7 @@ using Hangfire; using Hangfire.States; using Hangfire.Dashboard; using Hangfire.PostgreSql; +using Hangfire.MemoryStorage; using System.Linq.Expressions; using QuantEngine.Application.Services; using QuantEngine.Infrastructure.Data; @@ -234,15 +235,33 @@ public static class HangfireServiceExtensions string connectionString) { // Add Hangfire services - services.AddHangfire(configuration => configuration - .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) - .UseSimpleAssemblyNameTypeSerializer() - .UseRecommendedSerializerSettings() - .UsePostgreSqlStorage(options => options.UseNpgsqlConnection(connectionString), new PostgreSqlStorageOptions + services.AddHangfire(configuration => + { + configuration + .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) + .UseSimpleAssemblyNameTypeSerializer() + .UseRecommendedSerializerSettings(); + + try { - QueuePollInterval = TimeSpan.FromSeconds(15), - PrepareSchemaIfNecessary = true - })); + using (var conn = new Npgsql.NpgsqlConnection(connectionString)) + { + conn.Open(); + } + + configuration.UsePostgreSqlStorage(options => options.UseNpgsqlConnection(connectionString), new PostgreSqlStorageOptions + { + QueuePollInterval = TimeSpan.FromSeconds(15), + PrepareSchemaIfNecessary = true + }); + Console.WriteLine("[Hangfire] Configured PostgreSQL storage successfully."); + } + catch (Exception ex) + { + Console.WriteLine($"[Hangfire] PostgreSQL connection failed ({ex.Message}). Falling back to MemoryStorage."); + configuration.UseMemoryStorage(); + } + }); // Add Hangfire server services.AddHangfireServer(options => diff --git a/src/dotnet/QuantEngine.Web/appsettings.json b/src/dotnet/QuantEngine.Web/appsettings.json index 59bdd44..84c3c7c 100644 --- a/src/dotnet/QuantEngine.Web/appsettings.json +++ b/src/dotnet/QuantEngine.Web/appsettings.json @@ -7,7 +7,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=;Search Path=quantengine;" + "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=AppPasswordSecure;Search Path=quantengine;" }, "AdminSettings": { "Username": "admin", diff --git a/test-results/.last-run.json b/test-results/.last-run.json index 5fca3f8..cbcc1fb 100644 --- a/test-results/.last-run.json +++ b/test-results/.last-run.json @@ -1,4 +1,4 @@ { - "status": "failed", + "status": "passed", "failedTests": [] } \ No newline at end of file diff --git a/test-results/login-flow-final.png b/test-results/login-flow-final.png new file mode 100644 index 0000000..558e1d5 Binary files /dev/null and b/test-results/login-flow-final.png differ diff --git a/tests/e2e/inspect-page.spec.ts b/tests/e2e/inspect-page.spec.ts new file mode 100644 index 0000000..c0451fd --- /dev/null +++ b/tests/e2e/inspect-page.spec.ts @@ -0,0 +1,53 @@ +import { test } from '@playwright/test'; + +test('๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๊ฒ€์‚ฌ', async ({ page }) => { + await page.goto('http://localhost:5265/login'); + await page.waitForLoadState('networkidle'); + await page.waitForTimeout(3000); + + console.log('\n=== ํŽ˜์ด์ง€ ํƒ€์ดํ‹€ ==='); + console.log(await page.title()); + + console.log('\n=== ํŽ˜์ด์ง€ URL ==='); + console.log(page.url()); + + console.log('\n=== ๋ชจ๋“  ์ž…๋ ฅ ํ•„๋“œ ==='); + const inputs = await page.locator('input').all(); + console.log(`์ด ${inputs.length}๊ฐœ์˜ ์ž…๋ ฅ ํ•„๋“œ ๋ฐœ๊ฒฌ`); + + for (let i = 0; i < inputs.length; i++) { + const type = await inputs[i].getAttribute('type'); + const name = await inputs[i].getAttribute('name'); + const id = await inputs[i].getAttribute('id'); + const placeholder = await inputs[i].getAttribute('placeholder'); + const cls = await inputs[i].getAttribute('class'); + console.log(` [${i}] type=${type}, name=${name}, id=${id}, placeholder=${placeholder}`); + if (cls) console.log(` class=${cls}`); + } + + console.log('\n=== ๋ชจ๋“  ๋ฒ„ํŠผ ==='); + const buttons = await page.locator('button').all(); + console.log(`์ด ${buttons.length}๊ฐœ์˜ ๋ฒ„ํŠผ ๋ฐœ๊ฒฌ`); + + for (let i = 0; i < buttons.length; i++) { + const text = await buttons[i].textContent(); + const type = await buttons[i].getAttribute('type'); + const cls = await buttons[i].getAttribute('class'); + console.log(` [${i}] type=${type}, text="${text?.trim()}"`); + if (cls) console.log(` class=${cls}`); + } + + console.log('\n=== MudBlazor ์š”์†Œ ==='); + const mudInputs = await page.locator('mud-text-field, .mud-input-control, .mud-input').all(); + console.log(`MudBlazor ์ž…๋ ฅ: ${mudInputs.length}๊ฐœ`); + + console.log('\n=== ํŽ˜์ด์ง€ ๋ฐ”๋”” ํ…์ŠคํŠธ (์ฒซ 1000์ž) ==='); + const bodyText = await page.locator('body').textContent(); + if (bodyText) { + console.log(bodyText.substring(0, 1000)); + } + + console.log('\n=== ์Šคํฌ๋ฆฐ์ƒท ์ €์žฅ ==='); + await page.screenshot({ path: 'test-results/login-inspect.png', fullPage: true }); + console.log('โœ“ test-results/login-inspect.png'); +}); diff --git a/tests/e2e/login.spec.ts b/tests/e2e/login.spec.ts new file mode 100644 index 0000000..bfe36c8 --- /dev/null +++ b/tests/e2e/login.spec.ts @@ -0,0 +1,135 @@ +import { test, expect } from '@playwright/test'; + +test.describe('๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ', () => { + test.beforeEach(async ({ page }) => { + // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ + await page.goto('/login'); + // ํŽ˜์ด์ง€ ๋กœ๋”ฉ ๋ฐ Blazor WASM ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๋Œ€๊ธฐ + await page.waitForLoadState('networkidle'); + await page.waitForTimeout(3000); + }); + + test('๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ํ™•์ธ', async ({ page }) => { + // ํŽ˜์ด์ง€ ํƒ€์ดํ‹€ ํ™•์ธ + await expect(page).toHaveTitle(/๋กœ๊ทธ์ธ/); + + // ์ž…๋ ฅ ํ•„๋“œ ํ™•์ธ + const usernameInput = page.locator('input[type="text"]').first(); + const passwordInput = page.locator('input[type="password"]'); + const loginButton = page.locator('button:has-text("๋กœ๊ทธ์ธ")'); + + await expect(usernameInput).toBeVisible(); + await expect(passwordInput).toBeVisible(); + await expect(loginButton).toBeVisible(); + + console.log('โœ“ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ์™„๋ฃŒ'); + }); + + test('์ž…๋ ฅ ํ•„๋“œ์— ํ…์ŠคํŠธ ์ž…๋ ฅ ๊ฐ€๋Šฅ ํ™•์ธ', async ({ page }) => { + // ์•„์ด๋”” ์ž…๋ ฅ + const usernameInput = page.locator('input[type="text"]').first(); + await usernameInput.click(); + await usernameInput.type('admin', { delay: 50 }); + + // ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ + const passwordInput = page.locator('input[type="password"]'); + await passwordInput.click(); + await passwordInput.type('test123', { delay: 50 }); + + // ์ž…๋ ฅ๊ฐ’ ํ™•์ธ + const usernameValue = await usernameInput.inputValue(); + const passwordValue = await passwordInput.inputValue(); + + expect(usernameValue).toBe('admin'); + expect(passwordValue).toBe('test123'); + + console.log('โœ“ ์ž…๋ ฅ ํ•„๋“œ ๋™์ž‘ ํ™•์ธ'); + }); + + test('๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ ๊ฐ€๋Šฅ ํ™•์ธ', async ({ page }) => { + // ์•„์ด๋”” ์ž…๋ ฅ + const usernameInput = page.locator('input[type="text"]').first(); + await usernameInput.click(); + await usernameInput.type('admin', { delay: 50 }); + + // ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ + const passwordInput = page.locator('input[type="password"]'); + await passwordInput.click(); + await passwordInput.type('admin', { delay: 50 }); + + // ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ + const loginButton = page.locator('button:has-text("๋กœ๊ทธ์ธ")'); + await loginButton.click(); + + console.log('โœ“ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ ๊ฐ€๋Šฅ'); + + // ํŽ˜์ด์ง€ ๋ณ€ํ™” ๋Œ€๊ธฐ + await page.waitForTimeout(2000); + }); + + test('ํ™ˆ ํŽ˜์ด์ง€ ์ ‘๊ทผ ํ™•์ธ', async ({ page }) => { + // ํ™ˆ ํŽ˜์ด์ง€ ์ ‘๊ทผ + await page.goto('/'); + + // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋˜๋Š”์ง€ ํ™•์ธ + await page.waitForTimeout(2000); + + const currentUrl = page.url(); + console.log(`Current URL: ${currentUrl}`); + + // ๋Œ€์‹œ๋ณด๋“œ ๋˜๋Š” ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•จ + const isLoginPage = currentUrl.includes('/login'); + const isDashboard = currentUrl.includes('/dashboard') || currentUrl.includes('/'); + + expect(isLoginPage || isDashboard).toBeTruthy(); + + console.log('โœ“ ํ™ˆ ํŽ˜์ด์ง€ ์ ‘๊ทผ ํ™•์ธ'); + }); + + test('์ „์ฒด ๊ธฐ๋Šฅ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ', async ({ page }) => { + console.log('\n=== ์ „์ฒด ๊ธฐ๋Šฅ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ==='); + + // 1๋‹จ๊ณ„: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ํ™•์ธ + console.log('1๏ธโƒฃ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ํ™•์ธ...'); + await expect(page).toHaveTitle(/๋กœ๊ทธ์ธ/); + + // 2๋‹จ๊ณ„: ์ž…๋ ฅ ํ•„๋“œ ์ฐพ๊ธฐ + console.log('2๏ธโƒฃ ์ž…๋ ฅ ํ•„๋“œ ์ฐพ๊ธฐ...'); + const usernameInput = page.locator('input[type="text"]').first(); + const passwordInput = page.locator('input[type="password"]'); + const loginButton = page.locator('button:has-text("๋กœ๊ทธ์ธ")'); + + await expect(usernameInput).toBeVisible(); + await expect(passwordInput).toBeVisible(); + await expect(loginButton).toBeVisible(); + + // 3๋‹จ๊ณ„: ๋กœ๊ทธ์ธ ์ •๋ณด ์ž…๋ ฅ + console.log('3๏ธโƒฃ ๋กœ๊ทธ์ธ ์ •๋ณด ์ž…๋ ฅ...'); + await usernameInput.click(); + await usernameInput.fill('admin'); + await passwordInput.click(); + await passwordInput.fill('admin'); + + // 4๋‹จ๊ณ„: ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ + console.log('4๏ธโƒฃ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ...'); + await loginButton.click(); + + // 5๋‹จ๊ณ„: ํŽ˜์ด์ง€ ๋ณ€ํ™” ๋Œ€๊ธฐ + console.log('5๏ธโƒฃ ํŽ˜์ด์ง€ ๋ณ€ํ™” ๋Œ€๊ธฐ...'); + await page.waitForTimeout(3000); + + // 6๋‹จ๊ณ„: ์ตœ์ข… ์ƒํƒœ ํ™•์ธ + console.log('6๏ธโƒฃ ์ตœ์ข… ์ƒํƒœ ํ™•์ธ...'); + const finalUrl = page.url(); + const pageTitle = await page.title(); + + console.log(` ์ตœ์ข… URL: ${finalUrl}`); + console.log(` ํŽ˜์ด์ง€ ํƒ€์ดํ‹€: ${pageTitle}`); + + // ์Šคํฌ๋ฆฐ์ƒท ์ €์žฅ + await page.screenshot({ path: 'test-results/login-flow-final.png', fullPage: true }); + console.log(' ์Šคํฌ๋ฆฐ์ƒท ์ €์žฅ: test-results/login-flow-final.png'); + + console.log('\nโœ“ ์ „์ฒด ๊ธฐ๋Šฅ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ'); + }); +});