Gitlab-CI:AWS S3 部署失败

Gitlab-CI: AWS S3 deploy is failing

我正在尝试为 Gitlab-CI 在一个 React 项目上创建一个部署管道。构建工作正常,我使用工件从我的 yarn build 命令存储 dist 文件夹。这也很好用。

问题与我使用以下命令的部署有关:aws s3 sync dist/'bucket-name'

预计:"Done in x seconds"

实际:

error Command failed with exit code 2. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. Running after_script 00:01 Uploading artifacts for failed job 00:01 ERROR: Job failed: exit code 1

文件似乎已正确上传到S3存储桶,但我不知道为什么我在部署作业时出错。 当我 运行 aws s3 sync dist/'bucket-name' 在本地一切正常时。

查看 AWS CLI Return Codes

2 -- 此 return 代码的含义取决于命令 运行。

主要意思是命令行输入的命令解析失败。解析失败可能由但不限于缺少任何必需的子命令或参数或使用任何未知命令或参数引起。请注意,此 return 代码含义适用于所有 CLI 命令。

其他含义只适用于s3命令。这可能意味着在传输过程中至少跳过了一个或多个标记为传输的文件。但是,所有其他标记为传输的文件都已成功传输。传输过程中被跳过的文件包括:不存在的文件、字符特殊设备、块特殊设备、FIFO 或套接字的文件以及用户无法读取的文件。

第二段可能会解释发生了什么。

没有yarn build命令。参见 https://classic.yarnpkg.com/en/docs/cli/run

正如安东所说,他的回答的第二段就是问题所在。该问题的解决方案是从几个 SVG 中删除特殊字符。我怀疑将 dist 文件夹作为工件 (zip) 上传可能已经完全更改了一些文件名,这对 S3 造成了混淆。通过从文件名中删除 ® 和 +,问题得到解决。