2026-07-04T12:49:21.1083596Z hz-prod-runner-3(version:v0.6.1) received task 1550 of job build-and-deploy, be triggered by event: push
2026-07-04T12:49:21.1123461Z workflow prepared
2026-07-04T12:49:21.1124291Z evaluating expression 'success()'
2026-07-04T12:49:21.1125104Z expression 'success()' evaluated to 'true'
2026-07-04T12:49:21.1125339Z 🚀  Start image=docker.gitea.com/runner-images:ubuntu-latest
2026-07-04T12:49:21.1227263Z   🐳  docker pull image=docker.gitea.com/runner-images:ubuntu-latest platform= username= forcePull=false
2026-07-04T12:49:21.1227465Z   🐳  docker pull docker.gitea.com/runner-images:ubuntu-latest
2026-07-04T12:49:21.1502476Z Image exists? true
2026-07-04T12:49:21.2087073Z   🐳  docker create image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default"
2026-07-04T12:49:21.3084981Z Created container name=GITEA-ACTIONS-TASK-1550-WORKFLOW-TaxBaik-CI-CD-JOB-build-and-de-d1b621a7a13ad682fe29533e6a28b6835590d0898313b1b9fc5be41b5870455c id=7fdc784e6b95f4a2f3a7139414bcbaeff9754c0efd147950d7f0357c1b99e6c6 from image docker.gitea.com/runner-images:ubuntu-latest (platform: )
2026-07-04T12:49:21.3085729Z ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=X64 RUNNER_TEMP=/tmp LANG=C.UTF-8]
2026-07-04T12:49:21.3085886Z   🐳  docker run image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="gitea_default"
2026-07-04T12:49:21.3086611Z Starting container: 7fdc784e6b95f4a2f3a7139414bcbaeff9754c0efd147950d7f0357c1b99e6c6
2026-07-04T12:49:21.4654984Z Started container: 7fdc784e6b95f4a2f3a7139414bcbaeff9754c0efd147950d7f0357c1b99e6c6
2026-07-04T12:49:21.5734362Z Writing entry to tarball workflow/event.json len:5621
2026-07-04T12:49:21.5735278Z Writing entry to tarball workflow/envs.txt len:0
2026-07-04T12:49:21.5735491Z Extracting content to '/var/run/act/'
2026-07-04T12:49:21.5964245Z   ☁  git clone 'https://github.com/actions/checkout' # ref=v4
2026-07-04T12:49:21.5964651Z   cloning https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
2026-07-04T12:49:22.5232989Z Unable to pull refs/heads/v4: non-fast-forward update
2026-07-04T12:49:22.5233439Z Cloned https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
2026-07-04T12:49:22.5369401Z Checked out v4
2026-07-04T12:49:22.5461867Z   ☁  git clone 'https://github.com/actions/setup-dotnet' # ref=v4
2026-07-04T12:49:22.5462260Z   cloning https://github.com/actions/setup-dotnet to /root/.cache/act/2d637816dd86ec9ff59dad9ec3547bf90b88133b3029538a91ec96ac7f316336
2026-07-04T12:49:23.1436838Z Unable to pull refs/heads/v4: worktree contains unstaged changes
2026-07-04T12:49:23.1437339Z Cloned https://github.com/actions/setup-dotnet to /root/.cache/act/2d637816dd86ec9ff59dad9ec3547bf90b88133b3029538a91ec96ac7f316336
2026-07-04T12:49:23.1569954Z Checked out v4
2026-07-04T12:49:23.1781704Z evaluating expression ''
2026-07-04T12:49:23.1782188Z expression '' evaluated to 'true'
2026-07-04T12:49:23.1782304Z ⭐ Run Main Checkout code
2026-07-04T12:49:23.1782488Z Writing entry to tarball workflow/outputcmd.txt len:0
2026-07-04T12:49:23.1782639Z Writing entry to tarball workflow/statecmd.txt len:0
2026-07-04T12:49:23.1782757Z Writing entry to tarball workflow/pathcmd.txt len:0
2026-07-04T12:49:23.1782863Z Writing entry to tarball workflow/envs.txt len:0
2026-07-04T12:49:23.1782956Z Writing entry to tarball workflow/SUMMARY.md len:0
2026-07-04T12:49:23.1783048Z Extracting content to '/var/run/act'
2026-07-04T12:49:23.1829051Z ::group::Run Checkout code
2026-07-04T12:49:23.6519171Z ::add-matcher::/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/problem-matcher.json
2026-07-04T12:49:23.6522622Z Syncing repository: ***/taxbaik
2026-07-04T12:49:23.6526573Z ::group::Getting Git version info
2026-07-04T12:49:23.6527380Z Working directory is '/workspace/***/taxbaik'
2026-07-04T12:49:23.6565904Z [command]/usr/bin/git version
2026-07-04T12:49:23.6603817Z git version 2.54.0
2026-07-04T12:49:23.6627189Z ::endgroup::
2026-07-04T12:49:23.6642333Z Temporarily overriding HOME='/tmp/fee36d59-c0cf-4401-bc9a-d41af1fdbe1b' before making global git config changes
2026-07-04T12:49:23.6644026Z Adding repository directory to the temporary git global config as a safe directory
2026-07-04T12:49:23.6648194Z [command]/usr/bin/git config --global --add safe.directory /workspace/***/taxbaik
2026-07-04T12:49:23.6681379Z Deleting the contents of '/workspace/***/taxbaik'
2026-07-04T12:49:23.6686213Z ::group::Initializing the repository
2026-07-04T12:49:23.6689751Z [command]/usr/bin/git init /workspace/***/taxbaik
2026-07-04T12:49:23.6772415Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-07-04T12:49:23.6772830Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-07-04T12:49:23.6773287Z hint: to use in all of your new repositories, which will suppress this warning,
2026-07-04T12:49:23.6773438Z hint: call:
2026-07-04T12:49:23.6773518Z hint:
2026-07-04T12:49:23.6773598Z hint: 	git config --global init.defaultBranch <name>
2026-07-04T12:49:23.6773696Z hint:
2026-07-04T12:49:23.6777666Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-07-04T12:49:23.6777914Z hint: 'development'. The just-created branch can be renamed via this command:
2026-07-04T12:49:23.6778021Z hint:
2026-07-04T12:49:23.6778115Z hint: 	git branch -m <name>
2026-07-04T12:49:23.6778197Z hint:
2026-07-04T12:49:23.6778269Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-07-04T12:49:23.6779297Z Initialized empty Git repository in /workspace/***/taxbaik/.git/
2026-07-04T12:49:23.6794841Z [command]/usr/bin/git remote add origin http://gitea:3000/***/taxbaik
2026-07-04T12:49:23.6829189Z ::endgroup::
2026-07-04T12:49:23.6829674Z ::group::Disabling automatic garbage collection
2026-07-04T12:49:23.6835147Z [command]/usr/bin/git config --local gc.auto 0
2026-07-04T12:49:23.6860980Z ::endgroup::
2026-07-04T12:49:23.6861272Z ::group::Setting up auth
2026-07-04T12:49:23.6870622Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-07-04T12:49:23.6913960Z [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-04T12:49:23.7142806Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader
2026-07-04T12:49:23.7169599Z [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-04T12:49:23.7403942Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-07-04T12:49:23.7444452Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-07-04T12:49:23.7675767Z [command]/usr/bin/git config --local http.http://gitea:3000/.extraheader AUTHORIZATION: basic ***
2026-07-04T12:49:23.7709656Z ::endgroup::
2026-07-04T12:49:23.7709961Z ::group::Fetching the repository
2026-07-04T12:49:23.7717271Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +dc86ccfe35d48fec886729841aaf77d2323ffb81:refs/remotes/origin/master
2026-07-04T12:49:25.3253215Z From http://gitea:3000/***/taxbaik
2026-07-04T12:49:25.3253890Z  * [new ref]         dc86ccfe35d48fec886729841aaf77d2323ffb81 -> origin/master
2026-07-04T12:49:25.3282693Z ::endgroup::
2026-07-04T12:49:25.3282925Z ::group::Determining the checkout info
2026-07-04T12:49:25.3286679Z ::endgroup::
2026-07-04T12:49:25.3292353Z [command]/usr/bin/git sparse-checkout disable
2026-07-04T12:49:25.3338153Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-07-04T12:49:25.3366870Z ::group::Checking out the ref
2026-07-04T12:49:25.3370429Z [command]/usr/bin/git checkout --progress --force -B master refs/remotes/origin/master
2026-07-04T12:49:25.8277722Z Reset branch 'master'
2026-07-04T12:49:25.8278332Z branch 'master' set up to track 'origin/master'.
2026-07-04T12:49:25.8290141Z ::endgroup::
2026-07-04T12:49:25.8321715Z [command]/usr/bin/git log -1 --format=%H
2026-07-04T12:49:25.8341618Z dc86ccfe35d48fec886729841aaf77d2323ffb81
2026-07-04T12:49:25.8359179Z ::remove-matcher owner=checkout-git::
2026-07-04T12:49:25.8473361Z ::endgroup::
2026-07-04T12:49:25.8925201Z ::group::Run Setup .NET
2026-07-04T12:49:25.8925719Z with:
2026-07-04T12:49:25.8925850Z   dotnet-version: 10.0
2026-07-04T12:49:26.4364417Z (node:142) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2026-07-04T12:49:26.4365135Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-07-04T12:49:26.4415455Z [command]/run/act/actions/2d637816dd86ec9ff59dad9ec3547bf90b88133b3029538a91ec96ac7f316336/externals/install-dotnet.sh --skip-non-versioned-files --runtime dotnet --channel LTS
2026-07-04T12:49:26.7591141Z dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.9/dotnet-runtime-10.0.9-linux-x64.tar.gz
2026-07-04T12:49:26.9823877Z dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.9/dotnet-runtime-10.0.9-linux-x64.tar.gz size is 36606251 bytes.
2026-07-04T12:49:26.9830977Z dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.9/dotnet-runtime-10.0.9-linux-x64.tar.gz
2026-07-04T12:49:27.7850437Z dotnet-install: Downloaded file size is 36606251 bytes.
2026-07-04T12:49:27.7851130Z dotnet-install: The remote and local file sizes are equal.
2026-07-04T12:49:27.8443797Z dotnet-install: Installed version is 10.0.9
2026-07-04T12:49:27.8494627Z dotnet-install: Adding to current process PATH: `/usr/share/dotnet`. Note: This change will be visible only when sourcing script.
2026-07-04T12:49:27.8495003Z dotnet-install: Note that the script does not resolve dependencies during installation.
2026-07-04T12:49:27.8495163Z 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-04T12:49:27.8495299Z dotnet-install: Installation finished successfully.
2026-07-04T12:49:27.8526885Z [command]/run/act/actions/2d637816dd86ec9ff59dad9ec3547bf90b88133b3029538a91ec96ac7f316336/externals/install-dotnet.sh --skip-non-versioned-files --channel 10.0
2026-07-04T12:49:28.1718954Z 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-04T12:49:28.9847774Z 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-04T12:49:28.9854648Z 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-04T12:49:34.5345102Z dotnet-install: Downloaded file size is 235086718 bytes.
2026-07-04T12:49:34.5347250Z dotnet-install: The remote and local file sizes are equal.
2026-07-04T12:49:34.7378875Z dotnet-install: Installed version is 10.0.301
2026-07-04T12:49:34.7438030Z dotnet-install: Adding to current process PATH: `/usr/share/dotnet`. Note: This change will be visible only when sourcing script.
2026-07-04T12:49:34.7441902Z dotnet-install: Note that the script does not resolve dependencies during installation.
2026-07-04T12:49:34.7442410Z 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-04T12:49:34.7442569Z dotnet-install: Installation finished successfully.
2026-07-04T12:49:34.7473572Z ##[add-matcher]/run/act/actions/2d637816dd86ec9ff59dad9ec3547bf90b88133b3029538a91ec96ac7f316336/.github/csc.json
2026-07-04T12:49:34.7575673Z ::endgroup::
2026-07-04T12:49:34.8690239Z ::group::Run dotnet restore src/TaxBaik.sln
2026-07-04T12:49:34.8690735Z dotnet restore src/TaxBaik.sln
2026-07-04T12:49:34.8691061Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:49:34.8691248Z ::endgroup::
2026-07-04T12:49:35.0741950Z 
2026-07-04T12:49:35.0749035Z Welcome to .NET 10.0!
2026-07-04T12:49:35.0749790Z ---------------------
2026-07-04T12:49:35.0750163Z SDK Version: 10.0.301
2026-07-04T12:49:35.0750267Z 
2026-07-04T12:49:35.0750367Z Telemetry
2026-07-04T12:49:35.0750443Z ---------
2026-07-04T12:49:35.0750707Z 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-04T12:49:35.0751163Z 
2026-07-04T12:49:35.0751291Z Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
2026-07-04T12:49:35.6068528Z 
2026-07-04T12:49:35.6070150Z ----------------
2026-07-04T12:49:35.6070372Z Installed an ASP.NET Core HTTPS development certificate.
2026-07-04T12:49:35.6072186Z To trust the certificate, run 'dotnet dev-certs https --trust'
2026-07-04T12:49:35.6076372Z Learn about HTTPS: https://aka.ms/dotnet-https
2026-07-04T12:49:35.6076628Z 
2026-07-04T12:49:35.6076758Z ----------------
2026-07-04T12:49:35.6076846Z Write your first app: https://aka.ms/dotnet-hello-world
2026-07-04T12:49:35.6076954Z Find out what's new: https://aka.ms/dotnet-whats-new
2026-07-04T12:49:35.6077049Z Explore documentation: https://aka.ms/dotnet-docs
2026-07-04T12:49:35.6077169Z Report issues and find source on GitHub: https://github.com/dotnet/core
2026-07-04T12:49:35.6077278Z Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
2026-07-04T12:49:35.6077474Z --------------------------------------------------------------------------------------
2026-07-04T12:49:36.5161335Z   Determining projects to restore...
2026-07-04T12:49:37.2639927Z   Restored /workspace/***/taxbaik/src/TaxBaik.Domain/TaxBaik.Domain.csproj (in 114 ms).
2026-07-04T12:49:38.6108539Z   Restored /workspace/***/taxbaik/src/TaxBaik.Application/TaxBaik.Application.csproj (in 1.5 sec).
2026-07-04T12:49:39.8969495Z   Restored /workspace/***/taxbaik/src/TaxBaik.Web/TaxBaik.Web.csproj (in 1.27 sec).
2026-07-04T12:49:41.1437758Z   Restored /workspace/***/taxbaik/src/TaxBaik.Application.Tests/TaxBaik.Application.Tests.csproj (in 3.86 sec).
2026-07-04T12:49:41.2503876Z   Restored /workspace/***/taxbaik/src/TaxBaik.Infrastructure/TaxBaik.Infrastructure.csproj (in 30 ms).
2026-07-04T12:49:41.8107150Z   Restored /workspace/***/taxbaik/src/TaxBaik.Web.Client/TaxBaik.Web.Client.csproj (in 1.74 sec).
2026-07-04T12:49:41.9707509Z ::group::Run dotnet build src/TaxBaik.sln -c Release --no-restore -p:ContinuousIntegrationBuild=true
2026-07-04T12:49:41.9707880Z dotnet build src/TaxBaik.sln -c Release --no-restore -p:ContinuousIntegrationBuild=true
2026-07-04T12:49:41.9708017Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:49:41.9708125Z ::endgroup::
2026-07-04T12:49:45.3296980Z   TaxBaik.Domain -> /workspace/***/taxbaik/src/TaxBaik.Domain/bin/Release/net10.0/TaxBaik.Domain.dll
2026-07-04T12:49:47.7710543Z   TaxBaik.Application -> /workspace/***/taxbaik/src/TaxBaik.Application/bin/Release/net10.0/TaxBaik.Application.dll
2026-07-04T12:49:48.6747737Z   TaxBaik.Infrastructure -> /workspace/***/taxbaik/src/TaxBaik.Infrastructure/bin/Release/net10.0/TaxBaik.Infrastructure.dll
2026-07-04T12:50:08.6007977Z   TaxBaik.Web.Client -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Debug/net10.0/TaxBaik.Web.Client.dll
2026-07-04T12:50:08.6107202Z   TaxBaik.Web.Client (Blazor output) -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Debug/net10.0/wwwroot
2026-07-04T12:50:19.3402859Z   TaxBaik.Web -> /workspace/***/taxbaik/src/TaxBaik.Web/bin/Release/net10.0/TaxBaik.Web.dll
2026-07-04T12:50:20.2847876Z   TaxBaik.Application.Tests -> /workspace/***/taxbaik/src/TaxBaik.Application.Tests/bin/Release/net10.0/TaxBaik.Application.Tests.dll
2026-07-04T12:50:20.3269626Z 
2026-07-04T12:50:20.3279927Z Build succeeded.
2026-07-04T12:50:20.3283223Z     0 Warning(s)
2026-07-04T12:50:20.3284820Z     0 Error(s)
2026-07-04T12:50:20.3287249Z 
2026-07-04T12:50:20.3288831Z Time Elapsed 00:00:38.09
2026-07-04T12:50:20.4838413Z ::group::Run dotnet test src/TaxBaik.sln -c Release --no-build
2026-07-04T12:50:20.4839066Z dotnet test src/TaxBaik.sln -c Release --no-build
2026-07-04T12:50:20.4839241Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:50:20.4839359Z ::endgroup::
2026-07-04T12:50:23.9713693Z Test run for /workspace/***/taxbaik/src/TaxBaik.Application.Tests/bin/Release/net10.0/TaxBaik.Application.Tests.dll (.NETCoreApp,Version=v10.0)
2026-07-04T12:50:24.7096642Z A total of 1 test files matched the specified pattern.
2026-07-04T12:50:30.0285340Z 
2026-07-04T12:50:30.0898162Z Passed!  - Failed:     0, Passed:    26, Skipped:     0, Total:    26, Duration: 990 ms - TaxBaik.Application.Tests.dll (net10.0)
2026-07-04T12:50:30.3809977Z ::group::Run set -e
2026-07-04T12:50:30.3810322Z set -e
2026-07-04T12:50:30.3810444Z mkdir -p ./publish-logs
2026-07-04T12:50:30.3810532Z web_log="./publish-logs/publish-web.log"
2026-07-04T12:50:30.3810628Z start=$(date +%s)
2026-07-04T12:50:30.3810710Z # Web.Client needs a Release static-web-assets manifest for Web publish.
2026-07-04T12:50:30.3810972Z # Build it explicitly so publish can reuse the prepared outputs.
2026-07-04T12:50:30.3811068Z dotnet build src/TaxBaik.Web.Client/TaxBaik.Web.Client.csproj -c Release --no-restore -p:ContinuousIntegrationBuild=true
2026-07-04T12:50:30.3811171Z # Build the Web host in Release as well so publish has the same inputs
2026-07-04T12:50:30.3811261Z # the server uses in production.
2026-07-04T12:50:30.3811343Z dotnet build src/TaxBaik.Web/TaxBaik.Web.csproj -c Release --no-restore -p:ContinuousIntegrationBuild=true
2026-07-04T12:50:30.3811442Z echo "--- Web.Client Release artifacts ---"
2026-07-04T12:50:30.3811529Z ls -la src/TaxBaik.Web.Client/bin/Release/net10.0 || true
2026-07-04T12:50:30.3811622Z ls -la src/TaxBaik.Web.Client/obj/Release/net10.0 || true
2026-07-04T12:50:30.3811701Z if ! dotnet publish src/TaxBaik.Web/ \
2026-07-04T12:50:30.3811809Z   -c Release \
2026-07-04T12:50:30.3811886Z   -o ./publish \
2026-07-04T12:50:30.3811968Z   --no-restore \
2026-07-04T12:50:30.3812042Z   -p:SelfContained=false \
2026-07-04T12:50:30.3812116Z   -p:PublishReadyToRun=false \
2026-07-04T12:50:30.3812197Z   -p:PerformanceSummary=true \
2026-07-04T12:50:30.3812269Z   -clp:Summary \
2026-07-04T12:50:30.3812338Z   -bl:"./publish-logs/publish-web.binlog" >"$web_log" 2>&1; then
2026-07-04T12:50:30.3812451Z   echo "=== Publish Web failed; tailing log ==="
2026-07-04T12:50:30.3812603Z   tail -n 120 "$web_log" || true
2026-07-04T12:50:30.3812747Z   exit 1
2026-07-04T12:50:30.3812836Z fi
2026-07-04T12:50:30.3812917Z end=$(date +%s)
2026-07-04T12:50:30.3813009Z echo "✓ Publish Web elapsed: $((end - start))s"
2026-07-04T12:50:30.3813102Z ls -lh ./publish-logs/publish-web.binlog
2026-07-04T12:50:30.3813186Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:50:30.3813283Z ::endgroup::
2026-07-04T12:50:32.0488223Z   TaxBaik.Domain -> /workspace/***/taxbaik/src/TaxBaik.Domain/bin/Release/net10.0/TaxBaik.Domain.dll
2026-07-04T12:50:32.3508048Z   TaxBaik.Application -> /workspace/***/taxbaik/src/TaxBaik.Application/bin/Release/net10.0/TaxBaik.Application.dll
2026-07-04T12:50:44.4958268Z   TaxBaik.Web.Client -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Release/net10.0/TaxBaik.Web.Client.dll
2026-07-04T12:50:44.4978125Z   TaxBaik.Web.Client (Blazor output) -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Release/net10.0/wwwroot
2026-07-04T12:50:44.5536984Z 
2026-07-04T12:50:44.5540603Z Build succeeded.
2026-07-04T12:50:44.5541781Z     0 Warning(s)
2026-07-04T12:50:44.5557450Z     0 Error(s)
2026-07-04T12:50:44.5559019Z 
2026-07-04T12:50:44.5567098Z Time Elapsed 00:00:13.64
2026-07-04T12:50:46.1657100Z   TaxBaik.Domain -> /workspace/***/taxbaik/src/TaxBaik.Domain/bin/Release/net10.0/TaxBaik.Domain.dll
2026-07-04T12:50:46.2447793Z   TaxBaik.Infrastructure -> /workspace/***/taxbaik/src/TaxBaik.Infrastructure/bin/Release/net10.0/TaxBaik.Infrastructure.dll
2026-07-04T12:50:46.5259148Z   TaxBaik.Application -> /workspace/***/taxbaik/src/TaxBaik.Application/bin/Release/net10.0/TaxBaik.Application.dll
2026-07-04T12:50:48.5388949Z   TaxBaik.Web.Client -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Release/net10.0/TaxBaik.Web.Client.dll
2026-07-04T12:50:48.5397206Z   TaxBaik.Web.Client (Blazor output) -> /workspace/***/taxbaik/src/TaxBaik.Web.Client/bin/Release/net10.0/wwwroot
2026-07-04T12:50:51.6865226Z   TaxBaik.Web -> /workspace/***/taxbaik/src/TaxBaik.Web/bin/Release/net10.0/TaxBaik.Web.dll
2026-07-04T12:50:51.7325224Z 
2026-07-04T12:50:51.7335278Z Build succeeded.
2026-07-04T12:50:51.7356860Z     0 Warning(s)
2026-07-04T12:50:51.7360102Z     0 Error(s)
2026-07-04T12:50:51.7364579Z 
2026-07-04T12:50:51.7376644Z Time Elapsed 00:00:06.73
2026-07-04T12:50:51.7670469Z --- Web.Client Release artifacts ---
2026-07-04T12:50:51.7699768Z total 42056
2026-07-04T12:50:51.7700066Z drwxr-xr-x 3 root root   20480 Jul  4 12:50 .
2026-07-04T12:50:51.7700191Z drwxr-xr-x 3 root root    4096 Jul  4 12:50 ..
2026-07-04T12:50:51.7700291Z -rwxr--r-- 1 root root   55632 May 20 20:19 Microsoft.AspNetCore.Authorization.dll
2026-07-04T12:50:51.7700420Z -rwxr--r-- 1 root root   34128 May 20 20:19 Microsoft.AspNetCore.Components.Authorization.dll
2026-07-04T12:50:51.7700590Z -rwxr--r-- 1 root root   47952 May 20 20:19 Microsoft.AspNetCore.Components.Forms.dll
2026-07-04T12:50:51.7700682Z -rwxr--r-- 1 root root  189264 May 20 20:19 Microsoft.AspNetCore.Components.Web.dll
2026-07-04T12:50:51.7700950Z -rwxr--r-- 1 root root  166736 May 20 20:20 Microsoft.AspNetCore.Components.WebAssembly.dll
2026-07-04T12:50:51.7701048Z -rwxr--r-- 1 root root  399184 May 20 20:19 Microsoft.AspNetCore.Components.dll
2026-07-04T12:50:51.7701131Z -rwxr--r-- 1 root root   16208 May 20 20:18 Microsoft.AspNetCore.Metadata.dll
2026-07-04T12:50:51.7701220Z -rwxr--r-- 1 root root   19248 Dec 12  2025 Microsoft.Bcl.Cryptography.dll
2026-07-04T12:50:51.7701312Z -rwxr--r-- 1 root root  311632 May 20 18:30 Microsoft.CSharp.dll
2026-07-04T12:50:51.7701416Z -rwxr--r-- 1 root root   38192 Oct 24  2025 Microsoft.Extensions.Caching.Abstractions.dll
2026-07-04T12:50:51.7701508Z -rwxr--r-- 1 root root   28496 May 20 19:29 Microsoft.Extensions.Configuration.Abstractions.dll
2026-07-04T12:50:51.7701618Z -rwxr--r-- 1 root root   43344 May 20 19:32 Microsoft.Extensions.Configuration.Binder.dll
2026-07-04T12:50:51.7701708Z -rwxr--r-- 1 root root   28496 May 20 19:34 Microsoft.Extensions.Configuration.FileExtensions.dll
2026-07-04T12:50:51.7701813Z -rwxr--r-- 1 root root   27984 May 20 19:36 Microsoft.Extensions.Configuration.Json.dll
2026-07-04T12:50:51.7701918Z -rwxr--r-- 1 root root   44880 May 20 19:29 Microsoft.Extensions.Configuration.dll
2026-07-04T12:50:51.7702004Z -rwxr--r-- 1 root root   65872 May 20 19:29 Microsoft.Extensions.DependencyInjection.Abstractions.dll
2026-07-04T12:50:51.7702097Z -rwxr--r-- 1 root root   95568 May 20 19:30 Microsoft.Extensions.DependencyInjection.dll
2026-07-04T12:50:51.7702194Z -rwxr--r-- 1 root root   31056 May 20 19:32 Microsoft.Extensions.Diagnostics.Abstractions.dll
2026-07-04T12:50:51.7702288Z -rwxr--r-- 1 root root   36176 May 20 19:34 Microsoft.Extensions.Diagnostics.dll
2026-07-04T12:50:51.7702374Z -rwxr--r-- 1 root root   23376 May 20 19:29 Microsoft.Extensions.FileProviders.Abstractions.dll
2026-07-04T12:50:51.7702458Z -rwxr--r-- 1 root root   45392 May 20 19:33 Microsoft.Extensions.FileProviders.Physical.dll
2026-07-04T12:50:51.7702562Z -rwxr--r-- 1 root root   47952 May 20 19:30 Microsoft.Extensions.FileSystemGlobbing.dll
2026-07-04T12:50:51.7702655Z -rwxr--r-- 1 root root   93008 May 20 19:37 Microsoft.Extensions.Http.dll
2026-07-04T12:50:51.7702760Z -rwxr--r-- 1 root root   19576 Mar 25  2023 Microsoft.Extensions.Localization.Abstractions.dll
2026-07-04T12:50:51.7702853Z -rwxr--r-- 1 root root   31872 Mar 25  2023 Microsoft.Extensions.Localization.dll
2026-07-04T12:50:51.7702942Z -rwxr--r-- 1 root root   66896 May 20 19:29 Microsoft.Extensions.Logging.Abstractions.dll
2026-07-04T12:50:51.7703029Z -rwxr--r-- 1 root root   51536 May 20 19:33 Microsoft.Extensions.Logging.dll
2026-07-04T12:50:51.7703111Z -rwxr--r-- 1 root root   21840 May 20 19:33 Microsoft.Extensions.Options.ConfigurationExtensions.dll
2026-07-04T12:50:51.7703206Z -rwxr--r-- 1 root root   65360 May 20 19:30 Microsoft.Extensions.Options.dll
2026-07-04T12:50:51.7703314Z -rwxr--r-- 1 root root   44880 May 20 19:29 Microsoft.Extensions.Primitives.dll
2026-07-04T12:50:51.7703426Z -rwxr--r-- 1 root root   43344 May 20 20:19 Microsoft.Extensions.Validation.dll
2026-07-04T12:50:51.7703510Z -rwxr--r-- 1 root root   19296 Jun  2 20:51 Microsoft.IdentityModel.Abstractions.dll
2026-07-04T12:50:51.7703597Z -rwxr--r-- 1 root root  172856 Jun  2 20:52 Microsoft.IdentityModel.JsonWebTokens.dll
2026-07-04T12:50:51.7703683Z -rwxr--r-- 1 root root   38200 Jun  2 20:51 Microsoft.IdentityModel.Logging.dll
2026-07-04T12:50:51.7703764Z -rwxr--r-- 1 root root  407352 Jun  2 20:51 Microsoft.IdentityModel.Tokens.dll
2026-07-04T12:50:51.7703844Z -rwxr--r-- 1 root root   24912 May 20 20:20 Microsoft.JSInterop.WebAssembly.dll
2026-07-04T12:50:51.7703924Z -rwxr--r-- 1 root root   75088 May 20 20:19 Microsoft.JSInterop.dll
2026-07-04T12:50:51.7704012Z -rwxr--r-- 1 root root  428880 May 20 18:30 Microsoft.VisualBasic.Core.dll
2026-07-04T12:50:51.7704101Z -rwxr--r-- 1 root root   17232 May 20 18:31 Microsoft.VisualBasic.dll
2026-07-04T12:50:51.7704182Z -rwxr--r-- 1 root root   15696 May 20 18:29 Microsoft.Win32.Primitives.dll
2026-07-04T12:50:51.7704272Z -rwxr--r-- 1 root root   33104 May 20 18:29 Microsoft.Win32.Registry.dll
2026-07-04T12:50:51.7704425Z -rwxr--r-- 1 root root 9108480 Sep 14  2023 MudBlazor.dll
2026-07-04T12:50:51.7704514Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.AppContext.dll
2026-07-04T12:50:51.7704608Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Buffers.dll
2026-07-04T12:50:51.7704698Z -rwxr--r-- 1 root root   88912 May 20 18:29 System.Collections.Concurrent.dll
2026-07-04T12:50:51.7704789Z -rwxr--r-- 1 root root  251216 May 20 18:29 System.Collections.Immutable.dll
2026-07-04T12:50:51.7704875Z -rwxr--r-- 1 root root   47952 May 20 18:29 System.Collections.NonGeneric.dll
2026-07-04T12:50:51.7704966Z -rwxr--r-- 1 root root   47952 May 20 18:29 System.Collections.Specialized.dll
2026-07-04T12:50:51.7707333Z -rwxr--r-- 1 root root  112976 May 20 18:28 System.Collections.dll
2026-07-04T12:50:51.7707687Z -rwxr--r-- 1 root root  102736 May 20 18:31 System.ComponentModel.Annotations.dll
2026-07-04T12:50:51.7708035Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.ComponentModel.DataAnnotations.dll
2026-07-04T12:50:51.7708335Z -rwxr--r-- 1 root root   26448 May 20 18:29 System.ComponentModel.EventBasedAsync.dll
2026-07-04T12:50:51.7708514Z -rwxr--r-- 1 root root   42320 May 20 18:29 System.ComponentModel.Primitives.dll
2026-07-04T12:50:51.7708690Z -rwxr--r-- 1 root root  316752 May 20 18:31 System.ComponentModel.TypeConverter.dll
2026-07-04T12:50:51.7708912Z -rwxr--r-- 1 root root   16208 May 20 18:29 System.ComponentModel.dll
2026-07-04T12:50:51.7709087Z -rwxr--r-- 1 root root   19280 May 20 18:31 System.Configuration.dll
2026-07-04T12:50:51.7709258Z -rwxr--r-- 1 root root   54096 May 20 18:31 System.Console.dll
2026-07-04T12:50:51.7709460Z -rwxr--r-- 1 root root   23376 May 20 18:31 System.Core.dll
2026-07-04T12:50:51.7709630Z -rwxr--r-- 1 root root 1018192 May 20 18:31 System.Data.Common.dll
2026-07-04T12:50:51.7709804Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Data.DataSetExtensions.dll
2026-07-04T12:50:51.7709982Z -rwxr--r-- 1 root root   25424 May 20 18:31 System.Data.dll
2026-07-04T12:50:51.7710183Z -rwxr--r-- 1 root root   16208 May 20 18:31 System.Diagnostics.Contracts.dll
2026-07-04T12:50:51.7710361Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Diagnostics.Debug.dll
2026-07-04T12:50:51.7710524Z -rwxr--r-- 1 root root  202576 May 20 18:29 System.Diagnostics.DiagnosticSource.dll
2026-07-04T12:50:51.7710895Z -rwxr--r-- 1 root root   22864 May 20 18:29 System.Diagnostics.FileVersionInfo.dll
2026-07-04T12:50:51.7711109Z -rwxr--r-- 1 root root   56656 May 20 18:29 System.Diagnostics.Process.dll
2026-07-04T12:50:51.7711275Z -rwxr--r-- 1 root root   25936 May 20 18:29 System.Diagnostics.StackTrace.dll
2026-07-04T12:50:51.7711461Z -rwxr--r-- 1 root root   31568 May 20 18:31 System.Diagnostics.TextWriterTraceListener.dll
2026-07-04T12:50:51.7711697Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Diagnostics.Tools.dll
2026-07-04T12:50:51.7711883Z -rwxr--r-- 1 root root   58704 May 20 18:29 System.Diagnostics.TraceSource.dll
2026-07-04T12:50:51.7712056Z -rwxr--r-- 1 root root   16208 May 20 18:28 System.Diagnostics.Tracing.dll
2026-07-04T12:50:51.7712283Z -rwxr--r-- 1 root root   64848 May 20 18:29 System.Drawing.Primitives.dll
2026-07-04T12:50:51.7712465Z -rwxr--r-- 1 root root   20304 May 20 18:31 System.Drawing.dll
2026-07-04T12:50:51.7712648Z -rwxr--r-- 1 root root   16208 May 20 18:30 System.Dynamic.Runtime.dll
2026-07-04T12:50:51.7712825Z -rwxr--r-- 1 root root   97104 May 20 18:29 System.Formats.Asn1.dll
2026-07-04T12:50:51.7713000Z -rwxr--r-- 1 root root   38736 May 20 18:29 System.Formats.Tar.dll
2026-07-04T12:50:51.7713087Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Globalization.Calendars.dll
2026-07-04T12:50:51.7713176Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Globalization.Extensions.dll
2026-07-04T12:50:51.7713291Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Globalization.dll
2026-07-04T12:50:51.7713387Z -rwxr--r-- 1 root root   28496 May 20 18:29 System.IO.Compression.Brotli.dll
2026-07-04T12:50:51.7713486Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.IO.Compression.FileSystem.dll
2026-07-04T12:50:51.7713573Z -rwxr--r-- 1 root root   53584 May 20 18:29 System.IO.Compression.ZipFile.dll
2026-07-04T12:50:51.7713654Z -rwxr--r-- 1 root root  167760 May 20 18:31 System.IO.Compression.dll
2026-07-04T12:50:51.7713736Z -rwxr--r-- 1 root root   32080 May 20 18:29 System.IO.FileSystem.AccessControl.dll
2026-07-04T12:50:51.7713827Z -rwxr--r-- 1 root root   23888 May 20 18:29 System.IO.FileSystem.DriveInfo.dll
2026-07-04T12:50:51.7713926Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.IO.FileSystem.Primitives.dll
2026-07-04T12:50:51.7714013Z -rwxr--r-- 1 root root   33104 May 20 18:29 System.IO.FileSystem.Watcher.dll
2026-07-04T12:50:51.7714096Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.IO.FileSystem.dll
2026-07-04T12:50:51.7714178Z -rwxr--r-- 1 root root   35152 May 20 18:30 System.IO.IsolatedStorage.dll
2026-07-04T12:50:51.7714259Z -rwxr--r-- 1 root root   50000 May 20 18:31 System.IO.MemoryMappedFiles.dll
2026-07-04T12:50:51.7714344Z -rwxr--r-- 1 root root   78160 May 20 18:29 System.IO.Pipelines.dll
2026-07-04T12:50:51.7714423Z -rwxr--r-- 1 root root   23376 May 20 18:29 System.IO.Pipes.AccessControl.dll
2026-07-04T12:50:51.7714513Z -rwxr--r-- 1 root root   42320 May 20 18:29 System.IO.Pipes.dll
2026-07-04T12:50:51.7714598Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.IO.UnmanagedMemoryStream.dll
2026-07-04T12:50:51.7714682Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.IO.dll
2026-07-04T12:50:51.7714764Z -rwxr--r-- 1 root root   92000 Jun  2 20:51 System.IdentityModel.Tokens.Jwt.dll
2026-07-04T12:50:51.7714848Z -rwxr--r-- 1 root root  456528 May 20 18:29 System.Linq.AsyncEnumerable.dll
2026-07-04T12:50:51.7714934Z -rwxr--r-- 1 root root  575312 May 20 18:29 System.Linq.Expressions.dll
2026-07-04T12:50:51.7715013Z -rwxr--r-- 1 root root  223056 May 20 18:31 System.Linq.Parallel.dll
2026-07-04T12:50:51.7715099Z -rwxr--r-- 1 root root   78672 May 20 18:31 System.Linq.Queryable.dll
2026-07-04T12:50:51.7715179Z -rwxr--r-- 1 root root  201040 May 20 18:29 System.Linq.dll
2026-07-04T12:50:51.7715280Z -rwxr--r-- 1 root root   55632 May 20 18:28 System.Memory.dll
2026-07-04T12:50:51.7715363Z -rwxr--r-- 1 root root   56144 May 20 18:30 System.Net.Http.Json.dll
2026-07-04T12:50:51.7715443Z -rwxr--r-- 1 root root  296272 May 20 18:31 System.Net.Http.dll
2026-07-04T12:50:51.7724789Z -rwxr--r-- 1 root root   56144 May 20 18:30 System.Net.HttpListener.dll
2026-07-04T12:50:51.7725003Z -rwxr--r-- 1 root root  105296 May 20 18:31 System.Net.Mail.dll
2026-07-04T12:50:51.7725118Z -rwxr--r-- 1 root root   24400 May 20 18:31 System.Net.NameResolution.dll
2026-07-04T12:50:51.7725378Z -rwxr--r-- 1 root root   42320 May 20 18:29 System.Net.NetworkInformation.dll
2026-07-04T12:50:51.7725485Z -rwxr--r-- 1 root root   27984 May 20 18:29 System.Net.Ping.dll
2026-07-04T12:50:51.7725575Z -rwxr--r-- 1 root root  107344 May 20 18:31 System.Net.Primitives.dll
2026-07-04T12:50:51.7725659Z -rwxr--r-- 1 root root   39248 May 20 18:30 System.Net.Quic.dll
2026-07-04T12:50:51.7725741Z -rwxr--r-- 1 root root   65872 May 20 18:30 System.Net.Requests.dll
2026-07-04T12:50:51.7725821Z -rwxr--r-- 1 root root  114512 May 20 18:30 System.Net.Security.dll
2026-07-04T12:50:51.7725899Z -rwxr--r-- 1 root root   40784 May 20 18:29 System.Net.ServerSentEvents.dll
2026-07-04T12:50:51.7725997Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Net.ServicePoint.dll
2026-07-04T12:50:51.7726207Z -rwxr--r-- 1 root root   74576 May 20 18:29 System.Net.Sockets.dll
2026-07-04T12:50:51.7726297Z -rwxr--r-- 1 root root   56144 May 20 18:31 System.Net.WebClient.dll
2026-07-04T12:50:51.7726382Z -rwxr--r-- 1 root root   33104 May 20 18:29 System.Net.WebHeaderCollection.dll
2026-07-04T12:50:51.7726473Z -rwxr--r-- 1 root root   21840 May 20 18:31 System.Net.WebProxy.dll
2026-07-04T12:50:51.7726565Z -rwxr--r-- 1 root root   52560 May 20 18:31 System.Net.WebSockets.Client.dll
2026-07-04T12:50:51.7726651Z -rwxr--r-- 1 root root  108880 May 20 18:31 System.Net.WebSockets.dll
2026-07-04T12:50:51.7726745Z -rwxr--r-- 1 root root   17232 May 20 18:31 System.Net.dll
2026-07-04T12:50:51.7726828Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Numerics.Vectors.dll
2026-07-04T12:50:51.7726973Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Numerics.dll
2026-07-04T12:50:51.7727145Z -rwxr--r-- 1 root root   41296 May 20 18:29 System.ObjectModel.dll
2026-07-04T12:50:51.7727300Z -rwxr--r-- 1 root root 4880208 May 20 18:19 System.Private.CoreLib.dll
2026-07-04T12:50:51.7727457Z -rwxr--r-- 1 root root  859472 May 20 18:31 System.Private.DataContractSerialization.dll
2026-07-04T12:50:51.7727613Z -rwxr--r-- 1 root root  105808 May 20 18:28 System.Private.Uri.dll
2026-07-04T12:50:51.7727769Z -rwxr--r-- 1 root root  153936 May 20 18:30 System.Private.Xml.Linq.dll
2026-07-04T12:50:51.7727929Z -rwxr--r-- 1 root root 3106128 May 20 18:30 System.Private.Xml.dll
2026-07-04T12:50:51.7728079Z -rwxr--r-- 1 root root   38224 May 20 18:31 System.Reflection.DispatchProxy.dll
2026-07-04T12:50:51.7728248Z -rwxr--r-- 1 root root   15696 May 20 18:29 System.Reflection.Emit.ILGeneration.dll
2026-07-04T12:50:51.7728406Z -rwxr--r-- 1 root root   15696 May 20 18:29 System.Reflection.Emit.Lightweight.dll
2026-07-04T12:50:51.7728565Z -rwxr--r-- 1 root root  133456 May 20 18:29 System.Reflection.Emit.dll
2026-07-04T12:50:51.7728728Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Reflection.Extensions.dll
2026-07-04T12:50:51.7728907Z -rwxr--r-- 1 root root  503632 May 20 18:29 System.Reflection.Metadata.dll
2026-07-04T12:50:51.7729052Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Reflection.Primitives.dll
2026-07-04T12:50:51.7729143Z -rwxr--r-- 1 root root   24400 May 20 18:31 System.Reflection.TypeExtensions.dll
2026-07-04T12:50:51.7729244Z -rwxr--r-- 1 root root   16208 May 20 18:31 System.Reflection.dll
2026-07-04T12:50:51.7729337Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Resources.Reader.dll
2026-07-04T12:50:51.7729450Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Resources.ResourceManager.dll
2026-07-04T12:50:51.7729588Z -rwxr--r-- 1 root root   26960 May 20 18:31 System.Resources.Writer.dll
2026-07-04T12:50:51.7729711Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Runtime.CompilerServices.Unsafe.dll
2026-07-04T12:50:51.7729802Z -rwxr--r-- 1 root root   17232 May 20 18:30 System.Runtime.CompilerServices.VisualC.dll
2026-07-04T12:50:51.7729888Z -rwxr--r-- 1 root root   17744 May 20 18:30 System.Runtime.Extensions.dll
2026-07-04T12:50:51.7729981Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Runtime.Handles.dll
2026-07-04T12:50:51.7730089Z -rwxr--r-- 1 root root   89936 May 20 18:31 System.Runtime.InteropServices.JavaScript.dll
2026-07-04T12:50:51.7730186Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Runtime.InteropServices.RuntimeInformation.dll
2026-07-04T12:50:51.7730278Z -rwxr--r-- 1 root root   64848 May 20 18:29 System.Runtime.InteropServices.dll
2026-07-04T12:50:51.7730393Z -rwxr--r-- 1 root root   17232 May 20 18:29 System.Runtime.Intrinsics.dll
2026-07-04T12:50:51.7730536Z -rwxr--r-- 1 root root   15696 May 20 18:29 System.Runtime.Loader.dll
2026-07-04T12:50:51.7730680Z -rwxr--r-- 1 root root  145232 May 20 18:29 System.Runtime.Numerics.dll
2026-07-04T12:50:51.7730916Z -rwxr--r-- 1 root root   65872 May 20 18:29 System.Runtime.Serialization.Formatters.dll
2026-07-04T12:50:51.7731009Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Runtime.Serialization.Json.dll
2026-07-04T12:50:51.7731092Z -rwxr--r-- 1 root root   23376 May 20 18:30 System.Runtime.Serialization.Primitives.dll
2026-07-04T12:50:51.7731180Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.Runtime.Serialization.Xml.dll
2026-07-04T12:50:51.7731381Z -rwxr--r-- 1 root root   17232 May 20 18:31 System.Runtime.Serialization.dll
2026-07-04T12:50:51.7731472Z -rwxr--r-- 1 root root   44880 May 20 18:28 System.Runtime.dll
2026-07-04T12:50:51.7731568Z -rwxr--r-- 1 root root   58192 May 20 18:29 System.Security.AccessControl.dll
2026-07-04T12:50:51.7731659Z -rwxr--r-- 1 root root   55120 May 20 18:29 System.Security.Claims.dll
2026-07-04T12:50:51.7731742Z -rwxr--r-- 1 root root   17232 May 20 18:31 System.Security.Cryptography.Algorithms.dll
2026-07-04T12:50:51.7731846Z -rwxr--r-- 1 root root   16208 May 20 18:31 System.Security.Cryptography.Cng.dll
2026-07-04T12:50:51.7731929Z -rwxr--r-- 1 root root   16208 May 20 18:31 System.Security.Cryptography.Csp.dll
2026-07-04T12:50:51.7732017Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Security.Cryptography.Encoding.dll
2026-07-04T12:50:51.7732102Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Security.Cryptography.OpenSsl.dll
2026-07-04T12:50:51.7732185Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Security.Cryptography.Primitives.dll
2026-07-04T12:50:51.7732267Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.Security.Cryptography.X509Certificates.dll
2026-07-04T12:50:51.7732350Z -rwxr--r-- 1 root root  654160 May 20 18:31 System.Security.Cryptography.dll
2026-07-04T12:50:51.7732431Z -rwxr--r-- 1 root root   37712 May 20 18:29 System.Security.Principal.Windows.dll
2026-07-04T12:50:51.7732517Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Security.Principal.dll
2026-07-04T12:50:51.7732604Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Security.SecureString.dll
2026-07-04T12:50:51.7732693Z -rwxr--r-- 1 root root   18256 May 20 18:31 System.Security.dll
2026-07-04T12:50:51.7732776Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.ServiceModel.Web.dll
2026-07-04T12:50:51.7732919Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.ServiceProcess.dll
2026-07-04T12:50:51.7733005Z -rwxr--r-- 1 root root  742736 May 20 18:29 System.Text.Encoding.CodePages.dll
2026-07-04T12:50:51.7733087Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Text.Encoding.Extensions.dll
2026-07-04T12:50:51.7733169Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Text.Encoding.dll
2026-07-04T12:50:51.7733257Z -rwxr--r-- 1 root root   65872 May 20 18:32 System.Text.Encodings.Web.dll
2026-07-04T12:50:51.7733337Z -rwxr--r-- 1 root root  649040 May 20 18:30 System.Text.Json.dll
2026-07-04T12:50:51.7733484Z -rwxr--r-- 1 root root  384848 May 20 18:30 System.Text.RegularExpressions.dll
2026-07-04T12:50:51.7733633Z -rwxr--r-- 1 root root   33616 May 20 18:29 System.Threading.AccessControl.dll
2026-07-04T12:50:51.7733786Z -rwxr--r-- 1 root root   66384 May 20 18:29 System.Threading.Channels.dll
2026-07-04T12:50:51.7733944Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Threading.Overlapped.dll
2026-07-04T12:50:51.7734092Z -rwxr--r-- 1 root root  185680 May 20 18:29 System.Threading.Tasks.Dataflow.dll
2026-07-04T12:50:51.7734257Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Threading.Tasks.Extensions.dll
2026-07-04T12:50:51.7734393Z -rwxr--r-- 1 root root   61264 May 20 18:31 System.Threading.Tasks.Parallel.dll
2026-07-04T12:50:51.7734482Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.Threading.Tasks.dll
2026-07-04T12:50:51.7734567Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Threading.Thread.dll
2026-07-04T12:50:51.7734649Z -rwxr--r-- 1 root root   15696 May 20 18:28 System.Threading.ThreadPool.dll
2026-07-04T12:50:51.7734728Z -rwxr--r-- 1 root root   15184 May 20 18:30 System.Threading.Timer.dll
2026-07-04T12:50:51.7734807Z -rwxr--r-- 1 root root   44880 May 20 18:28 System.Threading.dll
2026-07-04T12:50:51.7734908Z -rwxr--r-- 1 root root  175952 May 20 18:30 System.Transactions.Local.dll
2026-07-04T12:50:51.7734993Z -rwxr--r-- 1 root root   16720 May 20 18:31 System.Transactions.dll
2026-07-04T12:50:51.7735073Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.ValueTuple.dll
2026-07-04T12:50:51.7735153Z -rwxr--r-- 1 root root   30032 May 20 18:31 System.Web.HttpUtility.dll
2026-07-04T12:50:51.7735268Z -rwxr--r-- 1 root root   15184 May 20 18:31 System.Web.dll
2026-07-04T12:50:51.7735365Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Windows.dll
2026-07-04T12:50:51.7735446Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Xml.Linq.dll
2026-07-04T12:50:51.7735534Z -rwxr--r-- 1 root root   21840 May 20 18:30 System.Xml.ReaderWriter.dll
2026-07-04T12:50:51.7735652Z -rwxr--r-- 1 root root   16208 May 20 18:31 System.Xml.Serialization.dll
2026-07-04T12:50:51.7735784Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Xml.XDocument.dll
2026-07-04T12:50:51.7735871Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Xml.XPath.XDocument.dll
2026-07-04T12:50:51.7735952Z -rwxr--r-- 1 root root   15696 May 20 18:30 System.Xml.XPath.dll
2026-07-04T12:50:51.7736041Z -rwxr--r-- 1 root root   15696 May 20 18:31 System.Xml.XmlDocument.dll
2026-07-04T12:50:51.7736341Z -rwxr--r-- 1 root root   17744 May 20 18:31 System.Xml.XmlSerializer.dll
2026-07-04T12:50:51.7736447Z -rwxr--r-- 1 root root   23376 May 20 18:31 System.Xml.dll
2026-07-04T12:50:51.7736537Z -rwxr--r-- 1 root root   50000 May 20 18:32 System.dll
2026-07-04T12:50:51.7736621Z -rw-r--r-- 1 root root  156672 Jul  4 12:49 TaxBaik.Application.dll
2026-07-04T12:50:51.7736707Z -rw-r--r-- 1 root root   38468 Jul  4 12:49 TaxBaik.Application.pdb
2026-07-04T12:50:51.7736794Z -rw-r--r-- 1 root root   37888 Jul  4 12:49 TaxBaik.Domain.dll
2026-07-04T12:50:51.7736873Z -rw-r--r-- 1 root root   24100 Jul  4 12:49 TaxBaik.Domain.pdb
2026-07-04T12:50:51.7736955Z -rw-r--r-- 1 root root  713216 Jul  4 12:50 TaxBaik.Web.Client.dll
2026-07-04T12:50:51.7737039Z -rw-r--r-- 1 root root  373136 Jul  4 12:50 TaxBaik.Web.Client.pdb
2026-07-04T12:50:51.7737139Z -rw-r--r-- 1 root root    2546 Jul  4 12:50 TaxBaik.Web.Client.runtimeconfig.json
2026-07-04T12:50:51.7737338Z -rw-r--r-- 1 root root 1007340 Jul  4 12:50 TaxBaik.Web.Client.staticwebassets.endpoints.json
2026-07-04T12:50:51.7737432Z -rw-r--r-- 1 root root   78064 Jul  4 12:50 TaxBaik.Web.Client.staticwebassets.runtime.json
2026-07-04T12:50:51.7737525Z -rwxr--r-- 1 root root   16208 May 20 18:31 WindowsBase.dll
2026-07-04T12:50:51.7737609Z -rwxr--r-- 1 root root   37898 May 20 18:42 dotnet.js
2026-07-04T12:50:51.7737687Z -rwxr--r-- 1 root root   51818 May 20 18:42 dotnet.js.map
2026-07-04T12:50:51.7737778Z -rwxr--r-- 1 root root  145050 May 20 18:43 dotnet.native.js
2026-07-04T12:50:51.7737860Z -rwxr--r-- 1 root root 3002101 May 20 18:43 dotnet.native.wasm
2026-07-04T12:50:51.7737942Z -rwxr--r-- 1 root root  198479 May 20 18:42 dotnet.runtime.js
2026-07-04T12:50:51.7738024Z -rwxr--r-- 1 root root  276757 May 20 18:42 dotnet.runtime.js.map
2026-07-04T12:50:51.7738104Z -rwxr--r-- 1 root root  956416 Apr  2 19:04 icudt_CJK.dat
2026-07-04T12:50:51.7738182Z -rwxr--r-- 1 root root  550832 Apr  2 19:04 icudt_EFIGS.dat
2026-07-04T12:50:51.7738259Z -rwxr--r-- 1 root root 1107168 Apr  2 19:04 icudt_no_CJK.dat
2026-07-04T12:50:51.7738341Z -rwxr--r-- 1 root root   59728 May 20 18:31 mscorlib.dll
2026-07-04T12:50:51.7738417Z -rwxr--r-- 1 root root  100688 May 20 18:32 netstandard.dll
2026-07-04T12:50:51.7738496Z drwxr-xr-x 3 root root    4096 Jul  4 12:50 wwwroot
2026-07-04T12:50:51.7740611Z total 4352
2026-07-04T12:50:51.7740967Z drwxr-xr-x 8 root root    4096 Jul  4 12:50 .
2026-07-04T12:50:51.7741083Z drwxr-xr-x 3 root root    4096 Jul  4 12:50 ..
2026-07-04T12:50:51.7741169Z -rw-r--r-- 1 root root     196 Jul  4 12:50 .NETCoreApp,Version=v10.0.AssemblyAttributes.cs
2026-07-04T12:50:51.7741346Z -rw-r--r-- 1 root root     137 Jul  4 12:50 EmbeddedAttribute.cs
2026-07-04T12:50:51.7741437Z -rw-r--r-- 1 root root       0 Jul  4 12:50 TaxBaik..C36EE7CA.Up2Date
2026-07-04T12:50:51.7741531Z -rw-r--r-- 1 root root    1008 Jul  4 12:50 TaxBaik.Web.Client.AssemblyInfo.cs
2026-07-04T12:50:51.7741630Z -rw-r--r-- 1 root root      65 Jul  4 12:50 TaxBaik.Web.Client.AssemblyInfoInputs.cache
2026-07-04T12:50:51.7741744Z -rw-r--r-- 1 root root   16355 Jul  4 12:50 TaxBaik.Web.Client.GeneratedMSBuildEditorConfig.editorconfig
2026-07-04T12:50:51.7741848Z -rw-r--r-- 1 root root     433 Jul  4 12:50 TaxBaik.Web.Client.GlobalUsings.g.cs
2026-07-04T12:50:51.7741978Z -rw-r--r-- 1 root root       0 Jul  4 12:50 TaxBaik.Web.Client.MvcApplicationPartsAssemblyInfo.cache
2026-07-04T12:50:51.7742164Z -rw-r--r-- 1 root root   27329 Jul  4 12:50 TaxBaik.Web.Client.assets.cache
2026-07-04T12:50:51.7742340Z -rw-r--r-- 1 root root   20456 Jul  4 12:50 TaxBaik.Web.Client.csproj.AssemblyReference.cache
2026-07-04T12:50:51.7742497Z -rw-r--r-- 1 root root      65 Jul  4 12:50 TaxBaik.Web.Client.csproj.CoreCompileInputs.cache
2026-07-04T12:50:51.7742654Z -rw-r--r-- 1 root root  136894 Jul  4 12:50 TaxBaik.Web.Client.csproj.FileListAbsolute.txt
2026-07-04T12:50:51.7742893Z -rw-r--r-- 1 root root  713216 Jul  4 12:50 TaxBaik.Web.Client.dll
2026-07-04T12:50:51.7743120Z -rw-r--r-- 1 root root      65 Jul  4 12:50 TaxBaik.Web.Client.genruntimeconfig.cache
2026-07-04T12:50:51.7743334Z -rw-r--r-- 1 root root  373136 Jul  4 12:50 TaxBaik.Web.Client.pdb
2026-07-04T12:50:51.7743742Z -rw-r--r-- 1 root root     276 Jul  4 12:50 ValidatableTypeAttribute.cs
2026-07-04T12:50:51.7743930Z -rw-r--r-- 1 root root       3 Jul  4 12:50 blazor.build.boot-extension.json
2026-07-04T12:50:51.7744151Z drwxr-xr-x 2 root root   20480 Jul  4 12:50 compressed
2026-07-04T12:50:51.7744319Z -rw-r--r-- 1 root root   93392 Jul  4 12:50 dotnet.js
2026-07-04T12:50:51.7744459Z -rw-r--r-- 1 root root  276706 Jul  4 12:50 rbcswa.dswa.cache.json
2026-07-04T12:50:51.7744599Z drwxr-xr-x 2 root root    4096 Jul  4 12:50 ref
2026-07-04T12:50:51.7744731Z drwxr-xr-x 2 root root    4096 Jul  4 12:50 refint
2026-07-04T12:50:51.7744901Z -rw-r--r-- 1 root root     322 Jul  4 12:50 rjimswa.dswa.cache.json
2026-07-04T12:50:51.7745034Z -rw-r--r-- 1 root root    3404 Jul  4 12:50 rjsmcshtml.dswa.cache.json
2026-07-04T12:50:51.7745177Z -rw-r--r-- 1 root root    3404 Jul  4 12:50 rjsmrazor.dswa.cache.json
2026-07-04T12:50:51.7745357Z -rw-r--r-- 1 root root    4173 Jul  4 12:50 rpswa.dswa.cache.json
2026-07-04T12:50:51.7745511Z drwxr-xr-x 2 root root    4096 Jul  4 12:50 staticwebassets
2026-07-04T12:50:51.7745658Z -rw-r--r-- 1 root root 1007340 Jul  4 12:50 staticwebassets.build.endpoints.json
2026-07-04T12:50:51.7745816Z -rw-r--r-- 1 root root 1564906 Jul  4 12:50 staticwebassets.build.json
2026-07-04T12:50:51.7746022Z -rw-r--r-- 1 root root      44 Jul  4 12:50 staticwebassets.build.json.cache
2026-07-04T12:50:51.7804929Z -rw-r--r-- 1 root root   78064 Jul  4 12:50 staticwebassets.development.json
2026-07-04T12:50:51.7805097Z -rw-r--r-- 1 root root       0 Jul  4 12:50 swae.build.ex.cache
2026-07-04T12:50:51.7805385Z drwxr-xr-x 2 root root    4096 Jul  4 12:50 tmp-webcil
2026-07-04T12:50:51.7805479Z drwxr-xr-x 2 root root   20480 Jul  4 12:50 webcil
2026-07-04T12:51:56.0836642Z ✓ Publish Web elapsed: 86s
2026-07-04T12:51:56.0856804Z -rw-r--r-- 1 root root 2.2M Jul  4 12:51 ./publish-logs/publish-web.binlog
2026-07-04T12:51:56.1993997Z ::group::Run set -e
2026-07-04T12:51:56.1994446Z set -e
2026-07-04T12:51:56.1994570Z mkdir -p ./publish-logs
2026-07-04T12:51:56.1994674Z # Proxy is not part of the solution restore graph, so restore it once
2026-07-04T12:51:56.1994784Z # here before publishing to avoid NETSDK1004 in CI.
2026-07-04T12:51:56.1994877Z dotnet restore src/TaxBaik.Proxy/
2026-07-04T12:51:56.1994953Z dotnet build src/TaxBaik.Proxy/TaxBaik.Proxy.csproj -c Release --no-restore
2026-07-04T12:51:56.1995040Z start=$(date +%s)
2026-07-04T12:51:56.1995115Z dotnet publish src/TaxBaik.Proxy/ \
2026-07-04T12:51:56.1995200Z   -c Release \
2026-07-04T12:51:56.1995275Z   -o ./publish/proxy \
2026-07-04T12:51:56.1995345Z   --no-restore \
2026-07-04T12:51:56.1995433Z   --no-build \
2026-07-04T12:51:56.1995766Z   -p:PublishReadyToRun=false \
2026-07-04T12:51:56.1995969Z   -p:PerformanceSummary=true \
2026-07-04T12:51:56.1996302Z   -clp:Summary \
2026-07-04T12:51:56.1996496Z   -bl:./publish-logs/publish-proxy.binlog
2026-07-04T12:51:56.1996597Z end=$(date +%s)
2026-07-04T12:51:56.1996672Z echo "✓ Publish Proxy elapsed: $((end - start))s"
2026-07-04T12:51:56.1996955Z ls -lh ./publish-logs/publish-proxy.binlog
2026-07-04T12:51:56.1997163Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:51:56.1997314Z ::endgroup::
2026-07-04T12:51:57.1407533Z   Determining projects to restore...
2026-07-04T12:51:57.6632131Z   Restored /workspace/***/taxbaik/src/TaxBaik.Proxy/TaxBaik.Proxy.csproj (in 125 ms).
2026-07-04T12:51:58.9747864Z   TaxBaik.Proxy -> /workspace/***/taxbaik/src/TaxBaik.Proxy/bin/Release/net10.0/TaxBaik.Proxy.dll
2026-07-04T12:51:58.9938437Z 
2026-07-04T12:51:58.9947013Z Build succeeded.
2026-07-04T12:51:58.9949917Z     0 Warning(s)
2026-07-04T12:51:58.9951624Z     0 Error(s)
2026-07-04T12:51:58.9954373Z 
2026-07-04T12:51:58.9954554Z Time Elapsed 00:00:01.05
2026-07-04T12:52:00.0446907Z   TaxBaik.Proxy -> /workspace/***/taxbaik/publish/proxy/
2026-07-04T12:52:00.0565606Z 
2026-07-04T12:52:00.0583909Z Build succeeded.
2026-07-04T12:52:00.0584436Z     0 Warning(s)
2026-07-04T12:52:00.0584681Z     0 Error(s)
2026-07-04T12:52:00.0584764Z 
2026-07-04T12:52:00.0584841Z Time Elapsed 00:00:00.64
2026-07-04T12:52:00.0903373Z ✓ Publish Proxy elapsed: 1s
2026-07-04T12:52:00.0915796Z -rw-r--r-- 1 root root 335K Jul  4 12:52 ./publish-logs/publish-proxy.binlog
2026-07-04T12:52:00.2477651Z ::group::Run set -e
2026-07-04T12:52:00.2478168Z set -e
2026-07-04T12:52:00.2478625Z JWT_SECRET_KEY="***"
2026-07-04T12:52:00.2478852Z TELEGRAM_BOT_TOKEN="***"
2026-07-04T12:52:00.2478963Z TELEGRAM_CHAT_ID="***"
2026-07-04T12:52:00.2479117Z TELEGRAM_INQUIRY_CHAT_ID=""
2026-07-04T12:52:00.2479461Z TELEGRAM_SYSTEM_CHAT_ID=""
2026-07-04T12:52:00.2479762Z [ -z "$JWT_SECRET_KEY" ]        && { echo "Missing TAXBAIK_JWT_SECRET_KEY" >&2;        exit 1; }
2026-07-04T12:52:00.2479916Z [ -z "$TELEGRAM_BOT_TOKEN" ]    && { echo "Missing TAXBAIK_TELEGRAM_BOT_TOKEN" >&2;    exit 1; }
2026-07-04T12:52:00.2480078Z [ -z "$TELEGRAM_CHAT_ID" ]      && { echo "Missing TAXBAIK_TELEGRAM_CHAT_ID" >&2;      exit 1; }
2026-07-04T12:52:00.2480551Z [ -z "$TELEGRAM_INQUIRY_CHAT_ID" ] && TELEGRAM_INQUIRY_CHAT_ID="$TELEGRAM_CHAT_ID"
2026-07-04T12:52:00.2480669Z [ -z "$TELEGRAM_SYSTEM_CHAT_ID" ]  && TELEGRAM_SYSTEM_CHAT_ID="-5585148480"
2026-07-04T12:52:00.2481140Z JWT_SECRET_KEY="$JWT_SECRET_KEY" \
2026-07-04T12:52:00.2481420Z TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" \
2026-07-04T12:52:00.2481513Z TELEGRAM_CHAT_ID="$TELEGRAM_CHAT_ID" \
2026-07-04T12:52:00.2481588Z TELEGRAM_INQUIRY_CHAT_ID="$TELEGRAM_INQUIRY_CHAT_ID" \
2026-07-04T12:52:00.2482377Z TELEGRAM_SYSTEM_CHAT_ID="$TELEGRAM_SYSTEM_CHAT_ID" \
2026-07-04T12:52:00.2482488Z python3 -c '
2026-07-04T12:52:00.2482577Z import json, os, pathlib
2026-07-04T12:52:00.2482665Z pathlib.Path("./publish/appsettings.Production.json").write_text(
2026-07-04T12:52:00.2483035Z   json.dumps({
2026-07-04T12:52:00.2483310Z     "Jwt":      {"SecretKey": os.environ["JWT_SECRET_KEY"]},
2026-07-04T12:52:00.2483405Z     "Telegram": {
2026-07-04T12:52:00.2483477Z       "BotToken": os.environ["TELEGRAM_BOT_TOKEN"],
2026-07-04T12:52:00.2483559Z       "ChatId": os.environ["TELEGRAM_CHAT_ID"],
2026-07-04T12:52:00.2483634Z       "InquiryChatId": os.environ["TELEGRAM_INQUIRY_CHAT_ID"],
2026-07-04T12:52:00.2483960Z       "SystemChatId": os.environ["TELEGRAM_SYSTEM_CHAT_ID"]
2026-07-04T12:52:00.2484230Z     }
2026-07-04T12:52:00.2484311Z   }, ensure_ascii=False, indent=2),
2026-07-04T12:52:00.2484386Z   encoding="utf-8"
2026-07-04T12:52:00.2484471Z )'
2026-07-04T12:52:00.2484543Z test -s ./publish/appsettings.Production.json || { echo "appsettings.Production.json is empty" >&2; exit 1; }
2026-07-04T12:52:00.2484866Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:00.2485155Z ::endgroup::
2026-07-04T12:52:00.5025133Z ::group::Run test -s ./publish/proxy/TaxBaik.Proxy.dll || { echo "TaxBaik.Proxy.dll missing" >&2; exit 1; }
2026-07-04T12:52:00.5025722Z test -s ./publish/proxy/TaxBaik.Proxy.dll || { echo "TaxBaik.Proxy.dll missing" >&2; exit 1; }
2026-07-04T12:52:00.5025922Z test -s ./publish/proxy/TaxBaik.Proxy.runtimeconfig.json || { echo "TaxBaik.Proxy.runtimeconfig.json missing" >&2; exit 1; }
2026-07-04T12:52:00.5026227Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:00.5026398Z ::endgroup::
2026-07-04T12:52:00.6764369Z ::group::Run mkdir -p ./publish/db && cp -r db/migrations ./publish/db/ || true
2026-07-04T12:52:00.6764765Z mkdir -p ./publish/db && cp -r db/migrations ./publish/db/ || true
2026-07-04T12:52:00.6764895Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:00.6765004Z ::endgroup::
2026-07-04T12:52:00.8728261Z ::group::Run bash scripts/validate_migrations.sh db/migrations
2026-07-04T12:52:00.8728660Z bash scripts/validate_migrations.sh db/migrations
2026-07-04T12:52:00.8728905Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:00.8729177Z ::endgroup::
2026-07-04T12:52:00.9538985Z Duplicate version check passed.
2026-07-04T12:52:01.0855583Z ::group::Run bash scripts/validate_kst_timestamps.sh
2026-07-04T12:52:01.0856340Z bash scripts/validate_kst_timestamps.sh
2026-07-04T12:52:01.0856747Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:01.0856924Z ::endgroup::
2026-07-04T12:52:01.1537519Z KST timestamp harness passed.
2026-07-04T12:52:01.3082211Z ::group::Run COMMIT_HASH=$(git rev-parse --short HEAD)
2026-07-04T12:52:01.3082595Z COMMIT_HASH=$(git rev-parse --short HEAD)
2026-07-04T12:52:01.3082713Z BUILD_TIME=$(TZ=Asia/Seoul date +'%Y-%m-%d %H:%M:%S KST')
2026-07-04T12:52:01.3082807Z mkdir -p ./publish/wwwroot
2026-07-04T12:52:01.3082952Z printf '{\n  "version": "%s",\n  "built": "%s"\n}\n' "$COMMIT_HASH" "$BUILD_TIME" > ./publish/wwwroot/version.json
2026-07-04T12:52:01.3083148Z echo "✓ Build: $COMMIT_HASH @ $BUILD_TIME"
2026-07-04T12:52:01.3083277Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:01.3083386Z ::endgroup::
2026-07-04T12:52:01.3712948Z ✓ Build: dc86ccf @ 2026-07-04 21:52:01 KST
2026-07-04T12:52:01.4848269Z ::group::Run mkdir -p ~/.ssh
2026-07-04T12:52:01.4849031Z mkdir -p ~/.ssh
2026-07-04T12:52:01.4849211Z SSH_KEY_B64="***"
2026-07-04T12:52:01.4849414Z SSH_KEY_RAW="***"
2026-07-04T12:52:01.4849576Z if [ -n "$SSH_KEY_B64" ]; then
2026-07-04T12:52:01.4850063Z   printf '%s' "$SSH_KEY_B64" | base64 -d > ~/.ssh/id_ed25519
2026-07-04T12:52:01.4850225Z elif [ -n "$SSH_KEY_RAW" ]; then
2026-07-04T12:52:01.4850362Z   if printf '%s' "$SSH_KEY_RAW" | grep -q 'BEGIN .*PRIVATE KEY'; then
2026-07-04T12:52:01.4850943Z     printf '%b\n' "$SSH_KEY_RAW" > ~/.ssh/id_ed25519
2026-07-04T12:52:01.4851190Z   else
2026-07-04T12:52:01.4851357Z     printf '%s' "$SSH_KEY_RAW" | base64 -d > ~/.ssh/id_ed25519
2026-07-04T12:52:01.4851809Z   fi
2026-07-04T12:52:01.4851949Z else
2026-07-04T12:52:01.4852141Z   echo "Missing DEPLOY_SSH_KEY_B64 or DEPLOY_SSH_KEY" >&2; exit 1
2026-07-04T12:52:01.4852495Z fi
2026-07-04T12:52:01.4852617Z sed -i 's/\r$//' ~/.ssh/id_ed25519
2026-07-04T12:52:01.4852755Z chmod 600 ~/.ssh/id_ed25519
2026-07-04T12:52:01.4852886Z ssh-keyscan -H "***" >> ~/.ssh/known_hosts 2>/dev/null || true
2026-07-04T12:52:01.4853093Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:01.4853480Z ::endgroup::
2026-07-04T12:52:01.9503887Z ::group::Run cp deploy_gb.sh ./publish/deploy_gb.sh
2026-07-04T12:52:01.9504389Z cp deploy_gb.sh ./publish/deploy_gb.sh
2026-07-04T12:52:01.9504506Z mkdir -p ./publish/scripts
2026-07-04T12:52:01.9504591Z cp scripts/validate_migrations.sh ./publish/scripts/validate_migrations.sh
2026-07-04T12:52:01.9504690Z chmod +x ./publish/scripts/validate_migrations.sh
2026-07-04T12:52:01.9504769Z tar -czf taxbaik_deploy.tgz -C ./publish .
2026-07-04T12:52:01.9504850Z echo "✓ Package: $(du -sh taxbaik_deploy.tgz | cut -f1)"
2026-07-04T12:52:01.9504949Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:01.9505044Z ::endgroup::
2026-07-04T12:52:04.4650255Z ✓ Package: 23M
2026-07-04T12:52:04.5749245Z ::group::Run set -e
2026-07-04T12:52:04.5749613Z set -e
2026-07-04T12:52:04.5749749Z export TAXBAIK_DEPLOY_FROM_CI=1
2026-07-04T12:52:04.5749842Z TIMESTAMP=$(TZ=Asia/Seoul date +%Y%m%d_%H%M%S)
2026-07-04T12:52:04.5749941Z COMMIT=$(git rev-parse --short HEAD)
2026-07-04T12:52:04.5750025Z DEPLOY_HOST="***"
2026-07-04T12:52:04.5750112Z DEPLOY_USER="***"
2026-07-04T12:52:04.5750193Z TELEGRAM_BOT_TOKEN="***"
2026-07-04T12:52:04.5750278Z TELEGRAM_SYSTEM_CHAT_ID=""
2026-07-04T12:52:04.5750351Z TELEGRAM_CHAT_ID="${TELEGRAM_SYSTEM_CHAT_ID:--5585148480}"
2026-07-04T12:52:04.5750434Z 
2026-07-04T12:52:04.5750499Z send_telegram() {
2026-07-04T12:52:04.5750573Z   local text="$1"
2026-07-04T12:52:04.5750651Z   if [ -z "$TELEGRAM_BOT_TOKEN" ]; then
2026-07-04T12:52:04.5750957Z     echo "Skipping Telegram notification: missing TAXBAIK_TELEGRAM_BOT_TOKEN" >&2
2026-07-04T12:52:04.5751063Z     return 0
2026-07-04T12:52:04.5751137Z   fi
2026-07-04T12:52:04.5751205Z 
2026-07-04T12:52:04.5751268Z   curl -fsS -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
2026-07-04T12:52:04.5751359Z     -d "chat_id=${TELEGRAM_CHAT_ID}" \
2026-07-04T12:52:04.5751470Z     --data-urlencode "text=${text}" \
2026-07-04T12:52:04.5751545Z     -d "parse_mode=HTML" >/dev/null || true
2026-07-04T12:52:04.5751619Z }
2026-07-04T12:52:04.5751687Z 
2026-07-04T12:52:04.5751744Z notify_failure() {
2026-07-04T12:52:04.5751817Z   local exit_code=$?
2026-07-04T12:52:04.5751888Z   send_telegram "❌ <b>TaxBaik 배포 실패</b>
2026-07-04T12:52:04.5751985Z 
2026-07-04T12:52:04.5752046Z   커밋: <code>${COMMIT}</code>
2026-07-04T12:52:04.5752122Z   시간: <code>${TIMESTAMP}</code>
2026-07-04T12:52:04.5752192Z   단계: CI/CD deploy"
2026-07-04T12:52:04.5752262Z   exit "$exit_code"
2026-07-04T12:52:04.5752330Z }
2026-07-04T12:52:04.5752395Z 
2026-07-04T12:52:04.5752476Z trap notify_failure ERR
2026-07-04T12:52:04.5752547Z 
2026-07-04T12:52:04.5752607Z echo "=== Deploying TaxBaik $COMMIT ($TIMESTAMP) ==="
2026-07-04T12:52:04.5752682Z 
2026-07-04T12:52:04.5752745Z # 1. 아티팩트 업로드
2026-07-04T12:52:04.5752819Z scp -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=yes \
2026-07-04T12:52:04.5752898Z   taxbaik_deploy.tgz "$DEPLOY_USER@$DEPLOY_HOST:/tmp/taxbaik_${TIMESTAMP}.tgz"
2026-07-04T12:52:04.5752988Z 
2026-07-04T12:52:04.5753051Z # 2. 서버에서 배포 + 헬스 체크 (SSH 1회 연결로 처리, Green-Blue 지원)
2026-07-04T12:52:04.5753136Z ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=yes \
2026-07-04T12:52:04.5753543Z     -o ServerAliveInterval=10 \
2026-07-04T12:52:04.5753625Z     "$DEPLOY_USER@$DEPLOY_HOST" TAXBAIK_DEPLOY_FROM_CI=1 bash << REMOTE
2026-07-04T12:52:04.5753709Z set -e
2026-07-04T12:52:04.5753788Z DEPLOY_HOME="/home/***"
2026-07-04T12:52:04.5753873Z DEPLOY_DIR="\$DEPLOY_HOME/deployments/taxbaik_${TIMESTAMP}"
2026-07-04T12:52:04.5753953Z TIMESTAMP="${TIMESTAMP}"
2026-07-04T12:52:04.5754024Z COMMIT="${COMMIT}"
2026-07-04T12:52:04.5754093Z 
2026-07-04T12:52:04.5754169Z echo "--- [1/5] 압축 해제 ---"
2026-07-04T12:52:04.5754243Z mkdir -p "\$DEPLOY_DIR"
2026-07-04T12:52:04.5754318Z tar -xzf "/tmp/taxbaik_\${TIMESTAMP}.tgz" -C "\$DEPLOY_DIR"
2026-07-04T12:52:04.5754407Z rm -f "/tmp/taxbaik_\${TIMESTAMP}.tgz"
2026-07-04T12:52:04.5754475Z 
2026-07-04T12:52:04.5754537Z echo "--- [2/5] 운영 설정 검증 ---"
2026-07-04T12:52:04.5754611Z test -s "\$DEPLOY_DIR/appsettings.Production.json" \
2026-07-04T12:52:04.5754687Z   || { echo "FATAL: appsettings.Production.json 없음" >&2; exit 1; }
2026-07-04T12:52:04.5754769Z test -s "\$DEPLOY_DIR/proxy/TaxBaik.Proxy.dll" \
2026-07-04T12:52:04.5754845Z   || { echo "FATAL: TaxBaik.Proxy.dll 없음" >&2; exit 1; }
2026-07-04T12:52:04.5754928Z 
2026-07-04T12:52:04.5754989Z echo "--- [3/5] 마이그레이션 사전 검증 ---"
2026-07-04T12:52:04.5755073Z test -x "\$DEPLOY_DIR/scripts/validate_migrations.sh" \
2026-07-04T12:52:04.5755143Z   || { echo "FATAL: validate_migrations.sh 없음" >&2; exit 1; }
2026-07-04T12:52:04.5755220Z "\$DEPLOY_DIR/scripts/validate_migrations.sh" "\$DEPLOY_DIR/db/migrations" "postgresql://taxbaik:taxbaik123@localhost:5432/taxbaikdb"
2026-07-04T12:52:04.5755316Z 
2026-07-04T12:52:04.5755383Z echo "--- [4/5] Green-Blue 배포 실행 ---"
2026-07-04T12:52:04.5755479Z chmod +x "\$DEPLOY_DIR/deploy_gb.sh"
2026-07-04T12:52:04.5755550Z "\$DEPLOY_DIR/deploy_gb.sh" "\$DEPLOY_DIR"
2026-07-04T12:52:04.5755622Z 
2026-07-04T12:52:04.5755686Z echo "--- [4.5/5] Nginx 설정 검증 ---"
2026-07-04T12:52:04.5755768Z # 실제 로드되는 파일은 sites-enabled/의 심볼릭 링크 대상만이다.
2026-07-04T12:52:04.5755850Z # sites-available/에 다른 파일(예: default)이 있어도 sites-enabled에
2026-07-04T12:52:04.5755945Z # 링크되어 있지 않으면 nginx는 그 내용을 절대 읽지 않는다.
2026-07-04T12:52:04.5756036Z NGINX_CONF=""
2026-07-04T12:52:04.5756277Z for f in /etc/nginx/sites-enabled/*; do
2026-07-04T12:52:04.5756361Z   if [ -e "\$f" ] && grep -q "location /taxbaik" "\$f" 2>/dev/null; then
2026-07-04T12:52:04.5756482Z     NGINX_CONF=\$(readlink -f "\$f")
2026-07-04T12:52:04.5756667Z     break
2026-07-04T12:52:04.5756846Z   fi
2026-07-04T12:52:04.5756964Z done
2026-07-04T12:52:04.5757108Z 
2026-07-04T12:52:04.5757224Z if [ -z "\$NGINX_CONF" ]; then
2026-07-04T12:52:04.5757368Z   echo "❌ FATAL: sites-enabled/ 안에서 'location /taxbaik'를 정의한 파일을 찾을 수 없음" >&2
2026-07-04T12:52:04.5757523Z   echo "   sites-available/에 파일을 수정해도 sites-enabled에 심볼릭 링크되어 있지 않으면 반영되지 않는다." >&2
2026-07-04T12:52:04.5757636Z   exit 1
2026-07-04T12:52:04.5757715Z fi
2026-07-04T12:52:04.5757781Z echo "실제 로드되는 설정 파일: \$NGINX_CONF"
2026-07-04T12:52:04.5757891Z 
2026-07-04T12:52:04.5758224Z # 불변식: '/'와 '/taxbaik' location 모두 반드시 127.0.0.1:5001 (TaxBaik.Proxy)을
2026-07-04T12:52:04.5758411Z # 가리켜야 한다. 5003/5004를 직접 하드코딩하면 Green-Blue 포트 전환 시
2026-07-04T12:52:04.5758502Z # 죽은 포트를 가리키게 되어 502/404가 발생한다 (실제 발생했던 장애).
2026-07-04T12:52:04.5758585Z if grep -E "proxy_pass\s+http://127\.0\.0\.1:500[34]" "\$NGINX_CONF" > /dev/null 2>&1; then
2026-07-04T12:52:04.5758688Z   echo "❌ FATAL: \$NGINX_CONF 가 포트 5003/5004를 직접 참조함 (Green-Blue 전환 시 502 발생)" >&2
2026-07-04T12:52:04.5758790Z   echo "   수정: sudo sed -i 's|127.0.0.1:500[34]|127.0.0.1:5001|g' \$NGINX_CONF && sudo nginx -t && sudo systemctl reload nginx" >&2
2026-07-04T12:52:04.5758903Z   exit 1
2026-07-04T12:52:04.5758978Z fi
2026-07-04T12:52:04.5759041Z 
2026-07-04T12:52:04.5759104Z # proxy_pass에 URI(끝 슬래시)가 있으면 nginx가 요청 경로를 재작성하며,
2026-07-04T12:52:04.5759451Z # location 접두사와 슬래시 개수가 안 맞으면 백엔드로 이중 슬래시(//)가
2026-07-04T12:52:04.5759539Z # 전달되어 404가 발생한다 (실제 발생했던 장애). 접두사 location에서는
2026-07-04T12:52:04.5759631Z # proxy_pass에 URI를 붙이지 않는다.
2026-07-04T12:52:04.5759730Z if grep -E "location\s+/taxbaik\s*\{" -A 1 "\$NGINX_CONF" | grep -qE "proxy_pass\s+http://127\.0\.0\.1:5001/;"; then
2026-07-04T12:52:04.5759822Z   echo "❌ FATAL: location /taxbaik 의 proxy_pass 에 불필요한 trailing slash가 있음 (이중 슬래시로 인한 404 위험)" >&2
2026-07-04T12:52:04.5759913Z   exit 1
2026-07-04T12:52:04.5759981Z fi
2026-07-04T12:52:04.5760047Z 
2026-07-04T12:52:04.5760121Z echo "✓ Nginx 설정 검증 통과 (실제 로드 파일 확인 + 포트 5001 고정 + trailing slash 없음)"
2026-07-04T12:52:04.5760214Z 
2026-07-04T12:52:04.5760285Z echo "--- [5/5] 헬스 체크 (최대 60초) ---"
2026-07-04T12:52:04.5760366Z ATTEMPTS=20
2026-07-04T12:52:04.5760433Z for i in \$(seq 1 \$ATTEMPTS); do
2026-07-04T12:52:04.5760506Z   STATUS=\$(curl -sf -o /dev/null -w '%{http_code}' http://127.0.0.1:5001/taxbaik/healthz 2>/dev/null || echo "000")
2026-07-04T12:52:04.5760596Z   if [ "\$STATUS" = "200" ]; then
2026-07-04T12:52:04.5760678Z     echo "✓ [1/6] 헬스 체크 완료"
2026-07-04T12:52:04.5760917Z 
2026-07-04T12:52:04.5760986Z     # 검증 1: 메인 페이지 로드. curl -L + -w 는 리다이렉트 체인의 상태코드를
2026-07-04T12:52:04.5761079Z     # 이어붙이므로, 첫 응답 코드만 받아 200/3xx를 허용한다.
2026-07-04T12:52:04.5761159Z     MAIN_STATUS=\$(curl -fsS -o /dev/null -w '%{http_code}' http://127.0.0.1:5001/taxbaik/ 2>/dev/null || echo "000")
2026-07-04T12:52:04.5761249Z     if ! printf '%s' "\$MAIN_STATUS" | grep -Eq '^(200|301|302|307|308)$'; then
2026-07-04T12:52:04.5761333Z       echo "❌ 메인 페이지 로드 실패 (상태: \$MAIN_STATUS)" >&2
2026-07-04T12:52:04.5761415Z       exit 1
2026-07-04T12:52:04.5761482Z     fi
2026-07-04T12:52:04.5761561Z     echo "✓ [2/6] 메인 페이지 로드 완료"
2026-07-04T12:52:04.5761647Z 
2026-07-04T12:52:04.5761724Z     # 검증 2: CSS 파일 로드
2026-07-04T12:52:04.5761804Z     CSS_STATUS=\$(curl -sf -o /dev/null -w '%{http_code}' http://127.0.0.1:5001/taxbaik/css/admin.css 2>/dev/null || echo "000")
2026-07-04T12:52:04.5761955Z     if [ "\$CSS_STATUS" != "200" ]; then
2026-07-04T12:52:04.5762120Z       echo "❌ CSS 파일 로드 실패 (상태: \$CSS_STATUS)" >&2
2026-07-04T12:52:04.5762317Z       exit 1
2026-07-04T12:52:04.5762451Z     fi
2026-07-04T12:52:04.5762570Z     echo "✓ [3/6] CSS 파일 로드 완료"
2026-07-04T12:52:04.5762691Z 
2026-07-04T12:52:04.5762793Z     # 검증 3: 버전 정보. 파일 존재만 보면 5001이 잘못된 구 프로세스를
2026-07-04T12:52:04.5762940Z     # 가리키는 장애를 놓치므로, HTTP 응답이 이번 커밋인지 확인한다.
2026-07-04T12:52:04.5763096Z     if [ ! -s "\$DEPLOY_DIR/wwwroot/version.json" ]; then
2026-07-04T12:52:04.5763233Z       echo "❌ version.json 누락" >&2
2026-07-04T12:52:04.5763398Z       exit 1
2026-07-04T12:52:04.5763528Z     fi
2026-07-04T12:52:04.5763654Z     VERSION_JSON=\$(curl -fsS http://127.0.0.1:5001/taxbaik/version.json 2>/dev/null || true)
2026-07-04T12:52:04.5763823Z     if ! printf '%s' "\$VERSION_JSON" | grep -q "\"version\": \"\$COMMIT\""; then
2026-07-04T12:52:04.5763977Z       echo "❌ 5001 프록시가 이번 배포 버전을 제공하지 않음" >&2
2026-07-04T12:52:04.5764122Z       echo "   expected: \$COMMIT" >&2
2026-07-04T12:52:04.5764261Z       echo "   actual: \$VERSION_JSON" >&2
2026-07-04T12:52:04.5764401Z       echo "   확인: 5001 포트가 TaxBaik.Proxy.dll인지, /home/***/taxbaik_port가 새 포트인지 점검" >&2
2026-07-04T12:52:04.5764575Z       exit 1
2026-07-04T12:52:04.5764708Z     fi
2026-07-04T12:52:04.5764827Z     echo "✓ [4/6] 버전 정보 확인 완료"
2026-07-04T12:52:04.5764961Z 
2026-07-04T12:52:04.5765061Z     # 검증 4: 5001 프록시 확인
2026-07-04T12:52:04.5765196Z     if ! ss -tlnp | grep -q ':5001 '; then
2026-07-04T12:52:04.5765343Z       echo "❌ 5001 프록시가 실행 중이 아님" >&2
2026-07-04T12:52:04.5765486Z       exit 1
2026-07-04T12:52:04.5765610Z     fi
2026-07-04T12:52:04.5765730Z     echo "✓ [5/6] 5001 프록시 확인 완료"
2026-07-04T12:52:04.5765870Z 
2026-07-04T12:52:04.5765986Z     # 검증 5: 관리자 로그인 페이지
2026-07-04T12:52:04.5766315Z     LOGIN_STATUS=\$(curl -fsSL -o /dev/null -w '%{http_code}' http://127.0.0.1:5001/taxbaik/admin/login 2>/dev/null || echo "000")
2026-07-04T12:52:04.5766510Z     if [ "\$LOGIN_STATUS" != "200" ]; then
2026-07-04T12:52:04.5766652Z       echo "❌ 관리자 로그인 페이지 로드 실패 (상태: \$LOGIN_STATUS)" >&2
2026-07-04T12:52:04.5766809Z       exit 1
2026-07-04T12:52:04.5766928Z     fi
2026-07-04T12:52:04.5767049Z     echo "✓ [6/6] 관리자 페이지 로드 완료"
2026-07-04T12:52:04.5767172Z 
2026-07-04T12:52:04.5767291Z     echo "✓ 서비스 정상 (시도 \$i/\$ATTEMPTS)"
2026-07-04T12:52:04.5767439Z     # 구 배포 디렉토리 정리 (최근 5개 보존)
2026-07-04T12:52:04.5767591Z     ls -1dt \$DEPLOY_HOME/deployments/taxbaik_* 2>/dev/null \
2026-07-04T12:52:04.5767740Z       | tail -n +6 | xargs rm -rf 2>/dev/null || true
2026-07-04T12:52:04.5767880Z     exit 0
2026-07-04T12:52:04.5768010Z   fi
2026-07-04T12:52:04.5768129Z   if [ "\$i" -eq "\$ATTEMPTS" ]; then
2026-07-04T12:52:04.5768263Z     echo "=== FATAL: 서비스가 \$ATTEMPTS회 시도 후에도 응답하지 않음 ===" >&2
2026-07-04T12:52:04.5768450Z     echo "--- 5001 listener ---" >&2
2026-07-04T12:52:04.5768587Z     ss -tlnp 2>/dev/null | grep ':5001 ' >&2 || true
2026-07-04T12:52:04.5768666Z     echo "--- active port file ---" >&2
2026-07-04T12:52:04.5768786Z     cat "\$DEPLOY_HOME/taxbaik_port" >&2 || true
2026-07-04T12:52:04.5768919Z     echo "--- 신규 앱 로그 ---" >&2
2026-07-04T12:52:04.5769051Z     ACTIVE_PORT=\$(cat "\$DEPLOY_HOME/taxbaik_port" 2>/dev/null | tr -d '[:space:]' || true)
2026-07-04T12:52:04.5769205Z     if [ -n "\$ACTIVE_PORT" ] && [ -s "\$DEPLOY_DIR/web_\${ACTIVE_PORT}.log" ]; then
2026-07-04T12:52:04.5769305Z       tail -n 80 "\$DEPLOY_DIR/web_\${ACTIVE_PORT}.log" >&2
2026-07-04T12:52:04.5769387Z     else
2026-07-04T12:52:04.5769507Z       ls -la "\$DEPLOY_DIR" >&2 || true
2026-07-04T12:52:04.5769640Z     fi
2026-07-04T12:52:04.5769755Z     echo "--- proxy 로그 ---" >&2
2026-07-04T12:52:04.5769889Z     tail -n 80 "\$DEPLOY_HOME/taxbaik_proxy.log" >&2 || true
2026-07-04T12:52:04.5770030Z     exit 1
2026-07-04T12:52:04.5770436Z   fi
2026-07-04T12:52:04.5770573Z   echo "  대기 중... (\$i/\$ATTEMPTS, HTTP \$STATUS)"
2026-07-04T12:52:04.5770874Z   sleep 3
2026-07-04T12:52:04.5771010Z done
2026-07-04T12:52:04.5771127Z REMOTE
2026-07-04T12:52:04.5771246Z 
2026-07-04T12:52:04.5771356Z echo "✓ 배포 완료: taxbaik_${TIMESTAMP} @ $DEPLOY_HOST"
2026-07-04T12:52:04.5771479Z 
2026-07-04T12:52:04.5771545Z echo "--- 실제 공개 도메인 종단 간 검증 (Nginx/Cloudflare 경유, 최대 3회 재시도) ---"
2026-07-04T12:52:04.5771637Z ROOT_URL="https://www.taxbaik.com/" \
2026-07-04T12:52:04.5771759Z ADMIN_URL="https://www.taxbaik.com/taxbaik/admin/login" \
2026-07-04T12:52:04.5771883Z PUBLIC_MARKER="백원숙 세무회계" \
2026-07-04T12:52:04.5771959Z PUBLIC_FORBIDDEN="관리자" \
2026-07-04T12:52:04.5772036Z ADMIN_MARKER="관리자 로그인" \
2026-07-04T12:52:04.5772120Z MAX_RETRIES=3 \
2026-07-04T12:52:04.5772189Z RETRY_SLEEP_SECONDS=5 \
2026-07-04T12:52:04.5772309Z bash ./scripts/taxbaik-smoke.sh
2026-07-04T12:52:04.5772408Z echo "✓ 실제 공개 도메인 전체 정상"
2026-07-04T12:52:04.5772486Z 
2026-07-04T12:52:04.5772551Z send_telegram "✅ <b>TaxBaik 배포 완료</b>
2026-07-04T12:52:04.5772628Z 
2026-07-04T12:52:04.5772713Z 커밋: <code>${COMMIT}</code>
2026-07-04T12:52:04.5772791Z 시간: <code>${TIMESTAMP}</code>
2026-07-04T12:52:04.5772868Z 대상: <code>${DEPLOY_HOST}</code>
2026-07-04T12:52:04.5772944Z 채널: <code>${TELEGRAM_CHAT_ID}</code>"
2026-07-04T12:52:04.5773021Z shell: bash --noprofile --norc -e -o pipefail {0}
2026-07-04T12:52:04.5773130Z ::endgroup::
2026-07-04T12:52:04.6332316Z === Deploying TaxBaik dc86ccf (20260704_215204) ===
2026-07-04T12:52:05.3820913Z --- [1/5] 압축 해제 ---
2026-07-04T12:52:05.6284914Z --- [2/5] 운영 설정 검증 ---
2026-07-04T12:52:05.6285418Z --- [3/5] 마이그레이션 사전 검증 ---
2026-07-04T12:52:05.8433051Z Migration dry-run validation passed.
2026-07-04T12:52:05.8438859Z --- [4/5] Green-Blue 배포 실행 ---
2026-07-04T12:52:05.8509623Z ===== 🚀 TaxBaik Green/Blue Deployment Script =====
2026-07-04T12:52:05.8541302Z Active Port: 5003
2026-07-04T12:52:05.8541658Z Target Port: 5004
2026-07-04T12:52:05.8542047Z Deploy Directory: /home/***/deployments/taxbaik_20260704_215204
2026-07-04T12:52:05.9049695Z === Starting New App on Port 5004 ===
2026-07-04T12:52:07.9185792Z === Health Checking Port 5004 ===
2026-07-04T12:52:08.2035208Z ✓ Health check passed on port 5004 (Attempt 1/20)
2026-07-04T12:52:08.2035939Z === Switching Traffic to Port 5004 ===
2026-07-04T12:52:08.2039084Z ✓ Traffic routed to 5004 (via TaxBaik.Proxy on 5001)
2026-07-04T12:52:08.2041337Z === Stopping Old App on Port 5003 ===
2026-07-04T12:52:08.2181936Z Killing old process PID: 4117859
2026-07-04T12:52:08.2184795Z ✓ Old process terminated
2026-07-04T12:52:08.2192076Z === Cleaning Up Old Deployments ===
2026-07-04T12:52:08.2379074Z ✓ Cleanup completed
2026-07-04T12:52:08.2379676Z ===== ✅ Green/Blue Deployment Completed Successfully =====
2026-07-04T12:52:08.2385094Z --- [4.5/5] Nginx 설정 검증 ---
2026-07-04T12:52:08.2436700Z 실제 로드되는 설정 파일: /etc/nginx/sites-available/taxbaik-domains.conf
2026-07-04T12:52:08.2509737Z ✓ Nginx 설정 검증 통과 (실제 로드 파일 확인 + 포트 5001 고정 + trailing slash 없음)
2026-07-04T12:52:08.2510207Z --- [5/5] 헬스 체크 (최대 60초) ---
2026-07-04T12:52:08.2933338Z ✓ [1/6] 헬스 체크 완료
2026-07-04T12:52:08.3102145Z ✓ [2/6] 메인 페이지 로드 완료
2026-07-04T12:52:08.3324117Z ✓ [3/6] CSS 파일 로드 완료
2026-07-04T12:52:08.3445763Z ✓ [4/6] 버전 정보 확인 완료
2026-07-04T12:52:08.3544241Z ✓ [5/6] 5001 프록시 확인 완료
2026-07-04T12:52:08.3650602Z ✓ [6/6] 관리자 페이지 로드 완료
2026-07-04T12:52:08.3651465Z ✓ 서비스 정상 (시도 1/20)
2026-07-04T12:52:08.3716219Z ✓ 배포 완료: taxbaik_20260704_215204 @ ***
2026-07-04T12:52:08.3716849Z --- 실제 공개 도메인 종단 간 검증 (Nginx/Cloudflare 경유, 최대 3회 재시도) ---
2026-07-04T12:52:10.5585268Z   retrying... (1/3)
2026-07-04T12:52:10.5585809Z   ✗ https://www.taxbaik.com/ -> body missing required marker: 백원숙 세무회계
2026-07-04T12:52:17.6149854Z   ✗ https://www.taxbaik.com/ -> body missing required marker: 백원숙 세무회계
2026-07-04T12:52:17.6152469Z   retrying... (2/3)
2026-07-04T12:52:24.5668073Z   ✗ https://www.taxbaik.com/ -> body missing required marker: 백원숙 세무회계
2026-07-04T12:52:24.5668594Z ✗ smoke verification failed
2026-07-04T12:52:24.8198071Z   ❌  Failure - Main Deploy & verify on server
2026-07-04T12:52:24.8336834Z exitcode '1': failure
2026-07-04T12:52:24.8630234Z evaluating expression 'success()'
2026-07-04T12:52:24.8631375Z expression 'success()' evaluated to 'false'
2026-07-04T12:52:24.8631585Z Skipping step 'Setup .NET' due to 'success()'
2026-07-04T12:52:24.8839000Z evaluating expression 'always()'
2026-07-04T12:52:24.8839624Z expression 'always()' evaluated to 'true'
2026-07-04T12:52:24.8839784Z ⭐ Run Post Checkout code
2026-07-04T12:52:24.8839977Z Writing entry to tarball workflow/outputcmd.txt len:0
2026-07-04T12:52:24.8840143Z Writing entry to tarball workflow/statecmd.txt len:0
2026-07-04T12:52:24.8840244Z Writing entry to tarball workflow/pathcmd.txt len:0
2026-07-04T12:52:24.8840333Z Writing entry to tarball workflow/envs.txt len:0
2026-07-04T12:52:24.8840411Z Writing entry to tarball workflow/SUMMARY.md len:0
2026-07-04T12:52:24.8840523Z Extracting content to '/var/run/act'
2026-07-04T12:52:24.8865590Z run post step for 'Checkout code'
2026-07-04T12:52:24.8866457Z executing remote job container: [node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]
2026-07-04T12:52:24.9112212Z   🐳  docker exec cmd=[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js] user= workdir=
2026-07-04T12:52:24.9112610Z Exec command '[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]'
2026-07-04T12:52:24.9113018Z Working directory '/workspace/***/taxbaik'
2026-07-04T12:52:25.1573902Z [command]/usr/bin/git version
2026-07-04T12:52:25.1613809Z git version 2.54.0
2026-07-04T12:52:25.1650128Z ***
2026-07-04T12:52:25.1677928Z Temporarily overriding HOME='/tmp/daa4130a-b951-44ca-9bf6-2a832ad8d592' before making global git config changes
2026-07-04T12:52:25.1678247Z Adding repository directory to the temporary git global config as a safe directory
2026-07-04T12:52:25.1680429Z [command]/usr/bin/git config --global --add safe.directory /workspace/***/taxbaik
2026-07-04T12:52:25.1715854Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-07-04T12:52:25.1760614Z [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-04T12:52:25.1997273Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/gitea\:3000\/\.extraheader
2026-07-04T12:52:25.2020534Z http.http://gitea:3000/.extraheader
2026-07-04T12:52:25.2034486Z [command]/usr/bin/git config --local --unset-all http.http://gitea:3000/.extraheader
2026-07-04T12:52:25.2067074Z [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-04T12:52:25.2313893Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-07-04T12:52:25.2344461Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-07-04T12:52:25.2706764Z   ✅  Success - Post Checkout code
2026-07-04T12:52:25.2810331Z Cleaning up container for job build-and-deploy
2026-07-04T12:52:25.6754704Z Removed container: 7fdc784e6b95f4a2f3a7139414bcbaeff9754c0efd147950d7f0357c1b99e6c6
2026-07-04T12:52:25.6765166Z   🐳  docker volume rm GITEA-ACTIONS-TASK-1550-WORKFLOW-TaxBaik-CI-CD-JOB-build-and-de-d1b621a7a13ad682fe29533e6a28b6835590d0898313b1b9fc5be41b5870455c
2026-07-04T12:52:25.7686731Z   🐳  docker volume rm GITEA-ACTIONS-TASK-1550-WORKFLOW-TaxBaik-CI-CD-JOB-build-and-de-d1b621a7a13ad682fe29533e6a28b6835590d0898313b1b9fc5be41b5870455c-env
2026-07-04T12:52:25.8187706Z 🏁  Job failed
2026-07-04T12:52:25.8314043Z Job 'build-and-deploy' failed
