使用 Artifactory 代理 Cypress CYPRESS_DOWNLOAD_MIRROR

Using Artifactory to proxy Cypress with CYPRESS_DOWNLOAD_MIRROR

期望的行为

我想使用 CYPRESS_DOWNLOAD_MIRROR 指向我的赛普拉斯人工配置,并且能够执行 npm 安装和下载赛普拉斯的库和二进制文件

当前行为

当在 artifactory 中设置 Cypress 并使用 CYPRESS_DOWNLOAD_MIRROR 设置下载它时,下载脚本将二进制文件查找为 X.Y.Z 而不是 cypress.zip 并失败。显然我不能在 artifactory 中重命名二进制文件。它似乎以 X.Y.Z 而不是 cypress.zip

的名称提供

我的 artifactory 管理员之前告诉我执行此命令,但我不能,因为它是 Cypress 的 post 操作 curl –v « https://artifactory.mycompany.fr/artifactory/remote-download.cypress-generic/desktop/6.8.0?platform=win32&arch=x64 » > cypress.zip

解决方法

目前,我正在使用 CYPRESS_INSTALL_BINARY 指向人工制品中手动上传的二进制文件,但这很痛苦,因为我必须将 Linux 二进制文件(对于 CI)和Windows binary (for dev) 如果我的包配置了 "cypress": "^6.2.1" npm 库将转到 6.2.1 而我的二进制文件将固定为 6.2.0 例如...

调试日志

正在安装 Cypress(版本:6.8.0)

× 下载赛普拉斯 → 赛普拉斯版本:6.8.0 解压缩赛普拉斯 完成安装 无法下载 Cypress App。

您的工作场所是否需要使用代理来访问 Internet?如果是,下载前必须配置HTTP_PROXY环境变量 柏。阅读更多:https://on.cypress.io/proxy-configuration

否则,请检查网络连接并重试:

URL: https://artifactory.mycompany.fr/artifactory/remote-download.cypress.io/desktop/6.8.0?platform=win32&arch=x64 错误:证书链中的自签名证书 下载方式

npm

操作系统

Linux

Windows

其他

I'm behind a proxy

我真的不知道这是人工制品还是赛普拉斯的问题,但我需要帮助^^

我能够使用以下方法使其在 Windows 上运行:

我创建了一个通用远程代表ository,确保它指向 https://download.cypress.io,并在高级选项卡下添加了查询参数:platform=win32&arch=x64(注意有一个专门的领域)。

为了缓存基于 OS 和 arch 的正确二进制文件,以上内容是必需的(您可能需要具有不同查询参数的不同远程代表os)。 我在 Cypress 文档上发现这些查询参数控制将要下载的二进制类型(因此我们需要确保它适合客户端 os 和 arch)。

在 .npmrc 中,我只提供了以下内容: CYPRESS_DOWNLOAD_MIRROR=https://user:myverystrongpassword@myartifactory/artifactory/generic-cypress-windows

除了已接受的答案外,还可以将预定义的 'Query Params' 替换为启用 'Propagate Query Params'。如果设置,随请求传递给 Artifactory 的查询参数将传递给远程仓库。

请注意,根据 JFrog docs,此设置仅适用于通用类型存储库。