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