Gitlab-ci 无法上传所有.js文件到JFrog
Gitlab-ci cannot upload all .js file to JFrog
我尝试将所有 .js 文件从 Gitlab-ci 上传到 Jfrog,我得到了这个
curl: Can't open 'scripts/*.js'
如果我指向一个 specified 文件 (scripts/001.js)
我的.gitlab-ci.yml
---
default:
image:
name: ubuntu:18.04
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
stages:
- upload
job01:
only:
- branches
stage: upload
script:
- apt update -y
- apt install curl -y
- curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T 'scripts/*.js'
tags:
- runner-aws
我试过 'scripts/(*).js' 和同样的错误。
问题是 curl
不支持 -T
选项中的通配符扩展。这个答案很好地总结了它:https://unix.stackexchange.com/a/315431
所以解决方案是像这样枚举多个文件:
- curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T "scripts/{file1.js,file2.js,file3.js}"
但是如果要枚举的文件太多,或者文件名可以更改,则可以将curl
与find
结合使用(受启发):
- find scripts -type file -name "*.js" -exec curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T {} \;
我建议使用 JFrog CLI 将文件上传到 Artifactory。通过并行上传文件并避免上传 Artifactory 中已经存在的文件,它的工作速度比 curl 快得多。
也支持通配符模式:
jfrog rt u "scripts/*.js" <path/in/artifactory> --user=$JFROG_USERNAME --password=$JFROG_PASSWORD --url=https://jfrog-platform-url/artifactory
在 Uploading Files 下阅读更多内容。
我尝试将所有 .js 文件从 Gitlab-ci 上传到 Jfrog,我得到了这个
curl: Can't open 'scripts/*.js'
如果我指向一个 specified 文件 (scripts/001.js)
我的.gitlab-ci.yml
---
default:
image:
name: ubuntu:18.04
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
stages:
- upload
job01:
only:
- branches
stage: upload
script:
- apt update -y
- apt install curl -y
- curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T 'scripts/*.js'
tags:
- runner-aws
我试过 'scripts/(*).js' 和同样的错误。
问题是 curl
不支持 -T
选项中的通配符扩展。这个答案很好地总结了它:https://unix.stackexchange.com/a/315431
所以解决方案是像这样枚举多个文件:
- curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T "scripts/{file1.js,file2.js,file3.js}"
但是如果要枚举的文件太多,或者文件名可以更改,则可以将curl
与find
结合使用(受启发):
- find scripts -type file -name "*.js" -exec curl -u $JFROG_USERNAME:$JFROG_PASSWORD -X PUT $JFROG_URL -T {} \;
我建议使用 JFrog CLI 将文件上传到 Artifactory。通过并行上传文件并避免上传 Artifactory 中已经存在的文件,它的工作速度比 curl 快得多。
也支持通配符模式:
jfrog rt u "scripts/*.js" <path/in/artifactory> --user=$JFROG_USERNAME --password=$JFROG_PASSWORD --url=https://jfrog-platform-url/artifactory
在 Uploading Files 下阅读更多内容。