Travis CI 只从构建脚本上传空文件
Travis CI only uploads empty files from the build script
我目前正尝试在 Travis CI 上建立一个文档项目。构建脚本使用 mkdocs 库生成 markdown 文件到 HTML 文件。我现在已经尝试了很多小时来使用 Travis CI 来自动化部署过程。它应该直接在 Travis CI 上生成文件,然后将其上传到 FTP 服务器。
我试过的
所以我已将此 .travis.yml 文件提交到我的 Github 存储库。
language: python
python:
- "2.7"
env:
global:
#FTP_USERNAME
- secure: "N9knL6LsuiZ....."
#FTP_PASSWORD
- secure: "NrRpwCeay7Y0s....."
install:
- pip install mkdocs
- mkdocs --version
script:
- mkdocs build
after_success:
- find documentation -type f -exec curl -u "${FTP_USERNAME}:${FTP_PASSWORD}" --verbose --progress-bar --ftp-create-dirs --max-time 30 -T {} ftp://my.ftp-server.com/{} \;
mkdocs 构建脚本会在根文件夹 "documentation" 中输出生成的文件。实际上,除非 FTP 服务器上的目录不存在,否则此代码有效。
什么不起作用
我在本地尝试了相同的代码(只是 运行 after_success 命令),它在那里正确上传了包含内容的文件。当 Travis-CI 现在开始将文件上传到我的 FTP 服务器时,它从 t运行sfer 开始,但直到抛出超时异常才结束。当我检查服务器上的文件时,它只创建了空文件。
有人能帮我看看为什么会出现这个问题吗?
我现在在 Travis CI Blog 上发现了一些有趣的东西。他们描述说,正常的 Travis CI 环境不再支持 FTP 协议。它在部署中使用不同的 NAT,这使得 FTP 服务器不确定请求,它会阻止内容请求。
解决方案
因此您必须使用 SFTP 或 VPN 连接到您的 FTP 服务器才能在 Travis CI 上部署文件。但是还有很多其他 CI/CD 解决方案。我个人现在使用 Github Actions,效果很好。甚至还有一个 FTP Upload 模块。
这可能是它不上传文件的原因,因为它将文件写入 FTP 服务器已经阻止请求的地方。
我目前正尝试在 Travis CI 上建立一个文档项目。构建脚本使用 mkdocs 库生成 markdown 文件到 HTML 文件。我现在已经尝试了很多小时来使用 Travis CI 来自动化部署过程。它应该直接在 Travis CI 上生成文件,然后将其上传到 FTP 服务器。
我试过的
所以我已将此 .travis.yml 文件提交到我的 Github 存储库。
language: python
python:
- "2.7"
env:
global:
#FTP_USERNAME
- secure: "N9knL6LsuiZ....."
#FTP_PASSWORD
- secure: "NrRpwCeay7Y0s....."
install:
- pip install mkdocs
- mkdocs --version
script:
- mkdocs build
after_success:
- find documentation -type f -exec curl -u "${FTP_USERNAME}:${FTP_PASSWORD}" --verbose --progress-bar --ftp-create-dirs --max-time 30 -T {} ftp://my.ftp-server.com/{} \;
mkdocs 构建脚本会在根文件夹 "documentation" 中输出生成的文件。实际上,除非 FTP 服务器上的目录不存在,否则此代码有效。
什么不起作用
我在本地尝试了相同的代码(只是 运行 after_success 命令),它在那里正确上传了包含内容的文件。当 Travis-CI 现在开始将文件上传到我的 FTP 服务器时,它从 t运行sfer 开始,但直到抛出超时异常才结束。当我检查服务器上的文件时,它只创建了空文件。
有人能帮我看看为什么会出现这个问题吗?
我现在在 Travis CI Blog 上发现了一些有趣的东西。他们描述说,正常的 Travis CI 环境不再支持 FTP 协议。它在部署中使用不同的 NAT,这使得 FTP 服务器不确定请求,它会阻止内容请求。
解决方案
因此您必须使用 SFTP 或 VPN 连接到您的 FTP 服务器才能在 Travis CI 上部署文件。但是还有很多其他 CI/CD 解决方案。我个人现在使用 Github Actions,效果很好。甚至还有一个 FTP Upload 模块。
这可能是它不上传文件的原因,因为它将文件写入 FTP 服务器已经阻止请求的地方。