从GitHub Actions上传签名.exe至Artifactory遇路径重复嵌套问题
路径重复嵌套的原因分析
这种重复嵌套问题通常是以下几种情况导致的:
- 上传命令中本地文件路径和Artifactory目标路径配置叠加:比如本地构建后生成的exe文件所在目录已经包含
artifactory/project/signed-exe路径段,而上传命令里又重复指定该目标路径,就会造成嵌套。 - Artifactory地址配置冗余:如果GitHub Actions中
ARTIFACTORY_URL环境变量已经包含/artifactory/project/signed-exe后缀,后续上传命令再次添加该路径,就会出现重复拼接。 - 误保留本地目录结构:JFrog CLI默认会同步本地文件的目录层级到目标路径,若本地目录结构和指定的目标路径重合,就会产生嵌套。
解决配置方案
针对不同原因调整配置即可解决:
修正上传命令的路径写法
确保本地文件路径不包含目标路径的重复部分,比如exe文件在./build/signed/myapp.exe,正确的上传命令应为:jf rt upload "./build/signed/myapp.exe" "my-repo/artifactory/project/signed-exe/"不要将本地路径写成
./artifactory/project/signed-exe/myapp.exe,避免把本地目录结构带到目标路径中。清理环境变量中的冗余路径
检查GitHub Actions里的ARTIFACTORY_URL,只保留Artifactory根地址,例如:ARTIFACTORY_URL=https://your-artifactory-domain.com/artifactory/project/signed-exe这部分应放在上传命令的目标路径参数里,不要写在根URL末尾。使用
--flat参数忽略本地目录结构
若不需要保留本地目录层级,上传时添加--flat=true参数,强制将文件直接上传到指定目标路径,不携带本地目录:jf rt upload "./build/**/*.exe" "my-repo/artifactory/project/signed-exe/" --flat=true检查工作流中的文件复制步骤
查看GitHub Actions工作流文件,确认是否有步骤将签名后的exe文件复制到artifactory/project/signed-exe目录下,若有则修改该步骤的输出目录,避免和目标路径重复。
内容的提问来源于stack exchange,提问作者stshta
相关产品推荐
相关产品推荐

