Generic Cause GenericWebhookEnvironmentContributor Received: {"object_kind":"push","event_name":"push","before":"070e303b9d86b8351cf11854d49280db4a352031","after":"9d4362d6cc2ddab8c014eaba584186dd455b4d1b","ref":"refs/heads/v3.0","checkout_sha":"9d4362d6cc2ddab8c014eaba584186dd455b4d1b","message":null,"user_id":6,"user_name":"liuyong","user_username":"liuyong","user_email":"","user_avatar":"https://www.gravatar.com/avatar/ea9c014430a3769478fc3f51da087dd2?s=80&d=identicon","project_id":606,"project":{"id":606,"name":"tc397_ota","description":"","web_url":"http://159.27.226.4/hardware/tc397_ota","avatar_url":null,"git_ssh_url":"git@159.27.226.4:hardware/tc397_ota.git","git_http_url":"http://159.27.226.4/hardware/tc397_ota.git","namespace":"Hardware","visibility_level":0,"path_with_namespace":"hardware/tc397_ota","default_branch":"main","ci_config_path":null,"homepage":"http://159.27.226.4/hardware/tc397_ota","url":"git@159.27.226.4:hardware/tc397_ota.git","ssh_url":"git@159.27.226.4:hardware/tc397_ota.git","http_url":"http://159.27.226.4/hardware/tc397_ota.git"},"commits":[{"id":"9d4362d6cc2ddab8c014eaba584186dd455b4d1b","message":"feat_out: v3.0 1.吉利汽车锁站切模式的逻辑仅适用于梁山港。 2. 蓬翔汽车修复遥控状态反馈的bug.\n","title":"feat_out: v3.0 1.吉利汽车锁站切模式的逻辑仅适用于梁山港。 2. 蓬翔汽车修复遥控状态反馈的bug.","timestamp":"2026-08-15T09:31:40+08:00","url":"http://159.27.226.4/hardware/tc397_ota/-/commit/9d4362d6cc2ddab8c014eaba584186dd455b4d1b","author":{"name":"liuyong","email":"liuyong@senior.auto"},"added":[],"modified":["TC397.hex"],"removed":[]}],"total_commits_count":1,"push_options":{},"repository":{"name":"tc397_ota","url":"git@159.27.226.4:hardware/tc397_ota.git","description":"","homepage":"http://159.27.226.4/hardware/tc397_ota","git_http_url":"http://159.27.226.4/hardware/tc397_ota.git","git_ssh_url":"git@159.27.226.4:hardware/tc397_ota.git","visibility_level":0}} Contributing variables: branch = refs/heads/v3.0 object_kind = push projectId = 606 projectName = tc397_ota runOpts = GitlabPush runOpts_0 = GitlabPush userName = liuyong Obtained hardware/tc397_ota.jenkinsfile from git http://159.27.226.4/weilikang/jenkinsfiles.git Loading library jenkinslib@master Attempting to resolve master from remote references... > git --version # timeout=10 > git --version # 'git version 2.25.1' using GIT_ASKPASS to set credentials gitlab_weilk > git ls-remote -h -- http://159.27.226.4/weilikang/jenkinslib.git # timeout=10 Found match: refs/heads/master revision 6eda9ac8f53c9e9a0fc26d9adfa349d451f80a63 The recommended git tool is: NONE using credential gitlab_weilk > git rev-parse --resolve-git-dir /var/lib/jenkins/workspace/tc397_ota@libs/e94781a6efe9f09486b8ea226d2b758971618b049d1fe436de6265fac85ceea3/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url http://159.27.226.4/weilikang/jenkinslib.git # timeout=10 Fetching without tags Fetching upstream changes from http://159.27.226.4/weilikang/jenkinslib.git > git --version # timeout=10 > git --version # 'git version 2.25.1' using GIT_ASKPASS to set credentials gitlab_weilk > git fetch --no-tags --force --progress -- http://159.27.226.4/weilikang/jenkinslib.git +refs/heads/*:refs/remotes/origin/* # timeout=10 Checking out Revision 6eda9ac8f53c9e9a0fc26d9adfa349d451f80a63 (master) > git config core.sparsecheckout # timeout=10 > git checkout -f 6eda9ac8f53c9e9a0fc26d9adfa349d451f80a63 # timeout=10 Commit message: "Update orinModule64Choice.groovy" > git rev-list --no-walk 6eda9ac8f53c9e9a0fc26d9adfa349d451f80a63 # timeout=10 [Pipeline] Start of Pipeline [Pipeline] echo tc397_ota [Pipeline] echo GitlabPush [Pipeline] echo v3.0 [Pipeline] node Running on Jenkins in /var/lib/jenkins/workspace/tc397_ota [Pipeline] { [Pipeline] stage [Pipeline] { (Declarative: Checkout SCM) [Pipeline] checkout The recommended git tool is: NONE using credential gitlab_weilk > git rev-parse --resolve-git-dir /var/lib/jenkins/workspace/tc397_ota/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url http://159.27.226.4/weilikang/jenkinsfiles.git # timeout=10 Fetching upstream changes from http://159.27.226.4/weilikang/jenkinsfiles.git > git --version # timeout=10 > git --version # 'git version 2.25.1' using GIT_ASKPASS to set credentials gitlab_weilk > git fetch --tags --force --progress -- http://159.27.226.4/weilikang/jenkinsfiles.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 Checking out Revision 5a88a9b6a5620171ede7924afb9741e9279e6bc9 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 5a88a9b6a5620171ede7924afb9741e9279e6bc9 # timeout=10 Commit message: "Update map-png.jenkinsfile" > git rev-list --no-walk 5a88a9b6a5620171ede7924afb9741e9279e6bc9 # timeout=10 [Pipeline] } [Pipeline] // stage [Pipeline] withEnv [Pipeline] { [Pipeline] withEnv [Pipeline] { [Pipeline] stage [Pipeline] { (checkout) [Pipeline] script [Pipeline] { [Pipeline] echo v3.0 [Pipeline] ansiColor [Pipeline] {
[Pipeline] echo >>>>>>>>>>拉取tc397_ota>>>>>>>>>> [Pipeline] }
[Pipeline] // ansiColor [Pipeline] sh + rm -rf /root/workspace/tc397_ota/tc397_ota /root/workspace/tc397_ota/tc397_ota_2026-08-13_15-41-03 /root/workspace/tc397_ota/tc397_ota_2026-08-13_15-41-03.zip /root/workspace/tc397_ota/version.json + mkdir /root/workspace/tc397_ota/tc397_ota/ [Pipeline] dir Running in /root/workspace/tc397_ota/tc397_ota [Pipeline] { [Pipeline] checkout The recommended git tool is: NONE using credential gitlab_ota Cloning the remote Git repository Cloning repository http://159.27.226.4/hardware/tc397_ota.git > git init /root/workspace/tc397_ota/tc397_ota # timeout=10 Fetching upstream changes from http://159.27.226.4/hardware/tc397_ota.git > git --version # timeout=10 > git --version # 'git version 2.25.1' using GIT_ASKPASS to set credentials gitlab_ota > git fetch --tags --force --progress -- http://159.27.226.4/hardware/tc397_ota.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git config remote.origin.url http://159.27.226.4/hardware/tc397_ota.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 Avoid second fetch > git rev-parse origin/v3.0^{commit} # timeout=10 Checking out Revision 9d4362d6cc2ddab8c014eaba584186dd455b4d1b (origin/v3.0) > git config core.sparsecheckout # timeout=10 > git checkout -f 9d4362d6cc2ddab8c014eaba584186dd455b4d1b # timeout=10 Commit message: "feat_out: v3.0 1.吉利汽车锁站切模式的逻辑仅适用于梁山港。 2. 蓬翔汽车修复遥控状态反馈的bug." > git rev-list --no-walk 070e303b9d86b8351cf11854d49280db4a352031 # timeout=10 [Pipeline] } [Pipeline] // dir [Pipeline] sh + rm -rf /root/workspace/tc397_ota@tmp [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (zip->post) [Pipeline] script [Pipeline] { [Pipeline] ansiColor [Pipeline] {
[Pipeline] echo >>>>>>>>>>压缩成zip包>>>>>>>>>> [Pipeline] }
[Pipeline] // ansiColor [Pipeline] readJSON [Pipeline] withCredentials Masking supported pattern matches of $gitlabToken [Pipeline] { [Pipeline] httpRequest Warning: A secret was passed to "httpRequest" using Groovy String interpolation, which is insecure. Affected argument(s) used the following variable(s): [gitlabToken] See https://jenkins.io/redirect/groovy-string-interpolation for details. HttpMethod: GET URL: http://159.27.226.4/api/v4/projects?search=tc397_ota&per_page=100 Content-Type: application/json PRIVATE-TOKEN: ***** Sending request to url: http://159.27.226.4/api/v4/projects?search=tc397_ota&per_page=100 Response Code: HTTP/1.1 200 OK Response: [{"id":606,"description":"","name":"tc397_ota","name_with_namespace":"Hardware / tc397_ota","path":"tc397_ota","path_with_namespace":"hardware/tc397_ota","created_at":"2023-05-08T12:56:19.632Z","default_branch":"main","tag_list":[],"topics":[],"ssh_url_to_repo":"git@159.27.226.4:hardware/tc397_ota.git","http_url_to_repo":"http://159.27.226.4/hardware/tc397_ota.git","web_url":"http://159.27.226.4/hardware/tc397_ota","readme_url":null,"avatar_url":null,"forks_count":0,"star_count":0,"last_activity_at":"2026-08-15T01:31:48.362Z","namespace":{"id":13,"name":"Hardware","path":"hardware","kind":"group","full_path":"hardware","parent_id":null,"avatar_url":null,"web_url":"http://159.27.226.4/groups/hardware"},"_links":{"self":"http://159.27.226.4/api/v4/projects/606","issues":"http://159.27.226.4/api/v4/projects/606/issues","merge_requests":"http://159.27.226.4/api/v4/projects/606/merge_requests","repo_branches":"http://159.27.226.4/api/v4/projects/606/repository/branches","labels":"http://159.27.226.4/api/v4/projects/606/labels","events":"http://159.27.226.4/api/v4/projects/606/events","members":"http://159.27.226.4/api/v4/projects/606/members","cluster_agents":"http://159.27.226.4/api/v4/projects/606/cluster_agents"},"packages_enabled":true,"empty_repo":false,"archived":false,"visibility":"private","resolve_outdated_diff_discussions":false,"container_expiration_policy":{"cadence":"1d","enabled":false,"keep_n":10,"older_than":"90d","name_regex":".*","name_regex_keep":null,"next_run_at":"2023-05-09T12:56:19.671Z"},"issues_enabled":true,"merge_requests_enabled":true,"wiki_enabled":true,"jobs_enabled":true,"snippets_enabled":true,"container_registry_enabled":true,"service_desk_enabled":false,"service_desk_address":null,"can_create_merge_request_in":true,"issues_access_level":"enabled","repository_access_level":"enabled","merge_requests_access_level":"enabled","forking_access_level":"enabled","wiki_access_level":"enabled","builds_access_level":"enabled","snippets_access_level":"enabled","pages_access_level":"private","operations_access_level":"enabled","analytics_access_level":"enabled","container_registry_access_level":"enabled","security_and_compliance_access_level":"private","emails_disabled":null,"shared_runners_enabled":true,"lfs_enabled":true,"creator_id":6,"import_status":"none","open_issues_count":0,"ci_default_git_depth":20,"ci_forward_deployment_enabled":true,"ci_job_token_scope_enabled":false,"ci_separated_caches":true,"public_jobs":true,"build_timeout":3600,"auto_cancel_pending_pipelines":"enabled","build_coverage_regex":null,"ci_config_path":null,"shared_with_groups":[],"only_allow_merge_if_pipeline_succeeds":false,"allow_merge_on_skipped_pipeline":null,"restrict_user_defined_variables":false,"request_access_enabled":true,"only_allow_merge_if_all_discussions_are_resolved":false,"remove_source_branch_after_merge":true,"printing_merge_request_link_enabled":true,"merge_method":"merge","squash_option":"default_off","enforce_auth_checks_on_uploads":true,"suggestion_commit_message":null,"merge_commit_template":null,"squash_commit_template":null,"auto_devops_enabled":false,"auto_devops_deploy_strategy":"continuous","autoclose_referenced_issues":true,"keep_latest_artifact":true,"runner_token_expiration_interval":null,"permissions":{"project_access":{"access_level":30,"notification_level":3},"group_access":null}}] Success: Status code 200 is in the accepted range: 100:399 [Pipeline] } [Pipeline] // withCredentials [Pipeline] readJSON [Pipeline] echo hardware/tc397_ota [Pipeline] echo 606 [Pipeline] echo 606 [Pipeline] dir Running in /root/workspace/tc397_ota [Pipeline] { [Pipeline] dir Running in /root/workspace/tc397_ota/tc397_ota [Pipeline] { [Pipeline] sh + echo -n '{"module":[' [Pipeline] sh + git rev-parse --short HEAD [Pipeline] sh + python3 /root/weilk/project/get_git_now.py 606 9d4362d [Pipeline] echo "device":1,"device_name":"none","type":1,"project":"0" [Pipeline] sh + echo -n '{"repo_name":"tc397_ota","branch":"v3.0","port":"hairun","time":"2026-08-15_09-31-55","commit_id":"9d4362d","version":"","commit_msgs":",IHYzLjAgMS7lkInliKnmsb3ovabplIHnq5nliIfmqKHlvI/nmoTpgLvovpHku4XpgILnlKjkuo7mooHlsbHmuK/jgIIgMi4g6JOs57+U5rG96L2m5L+u5aSN6YGl5o6n54q25oCB5Y+N6aaI55qEYnVnLg==,"}],"device":1,"device_name":"none","type":1,"project":"0"}' [Pipeline] sh + cat /root/workspace/tc397_ota/version.json {"module":[{"repo_name":"tc397_ota","branch":"v3.0","port":"hairun","time":"2026-08-15_09-31-55","commit_id":"9d4362d","version":"","commit_msgs":",IHYzLjAgMS7lkInliKnmsb3ovabplIHnq5nliIfmqKHlvI/nmoTpgLvovpHku4XpgILnlKjkuo7mooHlsbHmuK/jgIIgMi4g6JOs57+U5rG96L2m5L+u5aSN6YGl5o6n54q25oCB5Y+N6aaI55qEYnVnLg==,"}],"device":1,"device_name":"none","type":1,"project":"0"} [Pipeline] } [Pipeline] // dir [Pipeline] sh + cp -r tc397_ota/ tc397_ota_2026-08-15_09-31-58 [Pipeline] sh + rm -rf tc397_ota_2026-08-15_09-31-58/.git/ [Pipeline] sh + zip -rq tc397_ota_2026-08-15_09-31-58.zip ./tc397_ota_2026-08-15_09-31-58/ ./version.json [Pipeline] sh + ls /root/workspace/tc397_ota/ tc397_ota tc397_ota_2026-08-15_09-31-58 tc397_ota_2026-08-15_09-31-58.zip tc397_ota@tmp version.json [Pipeline] sh + curl -X POST http://127.0.0.1:8090/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 342k 0 0 100 342k 0 1712k --:--:-- --:--:-- --:--:-- 1704k 100 342k 0 43 100 342k 199 1586k --:--:-- --:--:-- --:--:-- 1578k [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://61.153.150.243:2200/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 342k 0 0 100 342k 0 255k 0:00:01 0:00:01 --:--:-- 255k 100 342k 0 0 100 342k 0 146k 0:00:02 0:00:02 --:--:-- 146k 100 342k 0 0 100 342k 0 102k 0:00:03 0:00:03 --:--:-- 102k 100 342k 0 0 100 342k 0 80792 0:00:04 0:00:04 --:--:-- 80792 100 342k 0 0 100 342k 0 65656 0:00:05 0:00:05 --:--:-- 65656 100 342k 0 0 100 342k 0 55296 0:00:06 0:00:06 --:--:-- 0 100 342k 0 0 100 342k 0 47760 0:00:07 0:00:07 --:--:-- 0 100 342k 0 0 100 342k 0 42032 0:00:08 0:00:08 --:--:-- 0 100 342k 0 0 100 342k 0 37530 0:00:09 0:00:09 --:--:-- 0 100 342k 0 0 100 342k 0 33900 0:00:10 0:00:10 --:--:-- 0 100 342k 0 0 100 342k 0 30910 0:00:11 0:00:11 --:--:-- 0 100 342k 0 0 100 342k 0 28405 0:00:12 0:00:12 --:--:-- 0 100 342k 0 0 100 342k 0 26275 0:00:13 0:00:13 --:--:-- 0 100 342k 0 0 100 342k 0 24442 0:00:14 0:00:14 --:--:-- 0 100 342k 0 0 100 342k 0 22849 0:00:15 0:00:15 --:--:-- 0 100 342k 0 43 100 342k 2 22458 0:00:15 0:00:15 --:--:-- 10 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://172.16.110.148:60180/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 342k 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 342k 0 0 100 342k 0 167k 0:00:02 0:00:02 --:--:-- 167k 100 342k 0 0 100 342k 0 112k 0:00:03 0:00:03 --:--:-- 112k 100 342k 0 0 100 342k 0 86746 0:00:04 0:00:04 --:--:-- 86746 100 342k 0 0 100 342k 0 69534 0:00:05 0:00:05 --:--:-- 69534 100 342k 0 0 100 342k 0 58022 0:00:06 0:00:06 --:--:-- 60017 100 342k 0 0 100 342k 0 49780 0:00:07 0:00:07 --:--:-- 0 100 342k 0 0 100 342k 0 43588 0:00:08 0:00:08 --:--:-- 0 100 342k 0 0 100 342k 0 38766 0:00:09 0:00:09 --:--:-- 0 100 342k 0 0 100 342k 0 34905 0:00:10 0:00:10 --:--:-- 0 100 342k 0 43 100 342k 3 32112 0:00:10 0:00:10 --:--:-- 8 100 342k 0 43 100 342k 3 32112 0:00:10 0:00:10 --:--:-- 11 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://172.16.110.145:50080/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 342k 0 0 100 342k 0 329k 0:00:01 0:00:01 --:--:-- 329k 100 342k 0 0 100 342k 0 167k 0:00:02 0:00:02 --:--:-- 167k 100 342k 0 0 100 342k 0 112k 0:00:03 0:00:03 --:--:-- 112k 100 342k 0 0 100 342k 0 86724 0:00:04 0:00:04 --:--:-- 86724 100 342k 0 0 100 342k 0 69520 0:00:05 0:00:05 --:--:-- 69520 100 342k 0 0 100 342k 0 58012 0:00:06 0:00:06 --:--:-- 0 100 342k 0 0 100 342k 0 49773 0:00:07 0:00:07 --:--:-- 0 100 342k 0 0 100 342k 0 43583 0:00:08 0:00:08 --:--:-- 0 100 342k 0 0 100 342k 0 38762 0:00:09 0:00:09 --:--:-- 0 100 342k 0 0 100 342k 0 34905 0:00:10 0:00:10 --:--:-- 0 100 342k 0 0 100 342k 0 31743 0:00:11 0:00:11 --:--:-- 0 100 342k 0 0 100 342k 0 29107 0:00:12 0:00:12 --:--:-- 0 100 342k 0 0 100 342k 0 26875 0:00:13 0:00:13 --:--:-- 0 100 342k 0 0 100 342k 0 24961 0:00:14 0:00:14 --:--:-- 0 100 342k 0 0 100 342k 0 23301 0:00:15 0:00:15 --:--:-- 0 100 342k 0 43 100 342k 2 21885 0:00:16 0:00:16 --:--:-- 8 100 342k 0 43 100 342k 2 21885 0:00:16 0:00:16 --:--:-- 10 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://116.252.55.76:8026/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 342k 0 43 100 342k 43 346k --:--:-- --:--:-- --:--:-- 346k 100 342k 0 43 100 342k 43 346k --:--:-- --:--:-- --:--:-- 346k [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://183.255.70.81:50080/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 93 342k 0 0 93 320k 0 1099k --:--:-- --:--:-- --:--:-- 1095k 100 342k 0 0 100 342k 0 264k 0:00:01 0:00:01 --:--:-- 264k 100 342k 0 43 100 342k 26 208k 0:00:01 0:00:01 --:--:-- 207k [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] readJSON [Pipeline] echo [msg:操作成功, code:200, data:] [Pipeline] echo status:200 [Pipeline] echo {"msg":"操作成功","code":200,"data":""} [Pipeline] sh + curl -X POST http://159.27.114.184:31018/ota-api/otaUploadFileAndVersion --form 'Content-Type="multipart/form-data"' --form 'file=@"/root/workspace/tc397_ota/tc397_ota_2026-08-15_09-31-58.zip"' --form 'version=@"/root/workspace/tc397_ota/version.json"' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 343k 100 497 100 342k 1684 1161k --:--:-- --:--:-- --:--:-- 1166k [Pipeline] echo <!DOCTYPE html> <html> <head> <title>Error</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>An error occurred.</h1> <p>Sorry, the page you are looking for is currently unavailable.<br/> Please try again later.</p> <p>If you are the system administrator of this resource then you should check the error log for details.</p> <p><em>Faithfully yours, nginx.</em></p> </body> </html> [Pipeline] readJSON [Pipeline] } [Pipeline] // dir [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Declarative: Post Actions) [Pipeline] script [Pipeline] { [Pipeline] echo always [Pipeline] } [Pipeline] // script [Pipeline] script [Pipeline] { [Pipeline] echo failure: zip->post [Pipeline] wrap [Pipeline] { [Pipeline] script [Pipeline] { [Pipeline] echo user: , telphone: [Pipeline] } [Pipeline] // script [Pipeline] sh + curl -X POST 'http://143.64.81.104:8080/robot/send?access_token=0e635ba9c724e48482d5e4146087ccb44e6b324d34f5e351b80db04fcf41017a' -H 'Content-Type: application/json' -d '{"msgtype": "markdown","markdown": {"title":"Jenkins通知","text": "# 版本编译失败 ### [tc397更新] --- - 任务名: [tc397_ota] - 任务号:# 275 - 阶段:zip->post - 状态:<font color=#FF5151> 上传失败 </font> - 执行人:auto --- > 请检查失败原因 @"},"at": {"atMobiles": [""],"isAtAll": "false"} }' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 394 100 27 100 367 225 3058 --:--:-- --:--:-- --:--:-- 3283 [Pipeline] echo {"errcode":0,"errmsg":"ok"} [Pipeline] } [Pipeline] // wrap [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline hudson.remoting.ProxyException: net.sf.json.JSONException: Invalid JSON String at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:143) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:103) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:84) at org.jenkinsci.plugins.pipeline.utility.steps.json.ReadJSONStepExecution.doRun(ReadJSONStepExecution.java:87) at org.jenkinsci.plugins.pipeline.utility.steps.AbstractFileOrTextStepExecution.run(AbstractFileOrTextStepExecution.java:29) at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Finished: FAILURE