在 Gitlab CI 工件中,根据生成它们的作业进行隔离,因此在下载时,您只能按作业下载它。
有没有办法下载所有工件,或者将工件传递到其他阶段并从那里上传?基本上是某种合并阶段所有工件的方法。
可能需要它的场景:假设在阶段部署中,我正在使用 10 个不同的并行作业在 10 个不同的服务器上部署我的项目。其中每一个都会生成一些工件。但是,无法从用户界面下载所有这些内容。
那么有人知道解决方法吗?我不是在寻找基于 API 的解决方案,而是在寻找基于 UI 的解决方案或编辑 CI yaml 文件以使其工作。
假设我有一个包含以下代码的包:
package paths
type FilePath struct {
PathA string
}
func (c FilePath) GetPathA() string {
if err := PathExists(PathA); err != nil {
return ""
}
return PathA + "foo"
}
func PathExists(p string) error {
// call os and file methods
return err
}
Run Code Online (Sandbox Code Playgroud)
如何模拟 PathExists 依赖项来测试 FilePath?此外,PathExists许多其他包也正在使用该方法。(我愿意接受重构此代码以使其测试友好的建议,请记住以下几点)
我遇到过几种不同的方法,但对我来说,没有一种方法是直观的或惯用的。
PE := PathExists包中有全局变量;在 中GetPathA,调用err := PE(PathA)并在测试PE中用模拟方法覆盖。
问题:如果测试包类似于 paths_test,我将必须导出,PE这也允许包的客户端覆盖它。
在测试中创建PathExists一个字段FilePath并模拟该字段。
问题:客户端在使用该包时,必须初始化PathExists字段,或者我提供一个表单的构造函数NewFilePath(PathtA string) …