使用通配符cURL上载管道中的文件
我目前正在运行一个依赖谷歌云平台构建文件的管道。我们想自动化最后一步,即文件上传使用通配符cURL上载管道中的文件,curl,google-cloud-platform,pipeline,Curl,Google Cloud Platform,Pipeline,我目前正在运行一个依赖谷歌云平台构建文件的管道。我们想自动化最后一步,即文件上传 - "gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && curl -F 'image=@*.raucb' http://upload.url.
- "gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && curl -F 'image=@*.raucb' http://upload.url.com/upload'"
现在的问题是curl-F似乎不接受通配符,是否可以完成此操作?请注意,您的命令有两组“”,一组在另一组中,没有退格 无论如何
gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command "bash -c 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && for fileimg in *.raucb; do curl -F image="\${fileimg}" http://upload.url.com/upload ; done '"
注:
- 我使用“bash-c”将命令传递给--,这样它只能远程生成单个进程(避免环境问题)
而不是cd&
这样,如果cd出现故障,for将不会运行cd
- 双
内单“
内双”
以避免过度转义(交替引号技巧)“
- foreach循环中不需要文件扩展名,与*.raucb中fileimg的
变量$fileimg将包含完整的文件名一样,
- 必须将变量的$引为
,否则它会被父shell解释\$
image=“@\${fileimg}”
我忘了这是在YAML中,我在Shell中测试了它。让我知道ttest是如何进行的…我让它工作了,但不知怎的,它在bitbucket管道中断裂了,不知道为什么。