Python Travis CI仅从构建脚本上载空文件
我目前正试图在Travis CI上建立一个文档项目。构建脚本使用mkdocs库将标记文件生成为HTML文件。我现在已经尝试了好几个小时使用Travis CI自动化部署过程。它应该直接在Travis CI上生成文件,然后将其上载到FTP服务器 我尝试过的 所以我把这个.travis.yml文件提交给了我的Github repoPython Travis CI仅从构建脚本上载空文件,python,ftp,travis-ci,mkdocs,Python,Ftp,Travis Ci,Mkdocs,我目前正试图在Travis CI上建立一个文档项目。构建脚本使用mkdocs库将标记文件生成为HTML文件。我现在已经尝试了好几个小时使用Travis CI自动化部署过程。它应该直接在Travis CI上生成文件,然后将其上载到FTP服务器 我尝试过的 所以我把这个.travis.yml文件提交给了我的Github repo language: python python: - "2.7" env: global: #FTP_USERNAME - secure: "N9
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服务器时,它将从传输开始,但直到引发超时异常后才结束传输。当我检查服务器上的文件时,它只创建了空文件
也许有人能帮我解释为什么会出现这个问题吗?我现在在网上发现了一些有趣的东西。他们描述,FTP协议在正常的Travis CI环境中不再受支持。事实上,它在部署中使用不同的NAT,这使得FTP服务器对请求不确定,并且会阻止内容请求 解决方案 因此,为了在Travis CI上部署文件,您必须使用SFTP或到FTP服务器的VPN连接。但也有很多其他CI/CD解决方案。我个人现在使用Github操作,效果非常好。甚至还有一个模块 这可能是它不上载文件的原因,因为它将文件写入FTP服务器已阻止请求的某个位置