我正在尝试开始使用 Jenkins 进行自动构建过程。
到目前为止,我已经设法让 Jenkins 从 BitBucket 构建项目、运行测试并使用 Publish Over SSH 插件将文件上传到生产服务器。
当我从我的 git 仓库中删除文件时,我希望在远程服务器上删除这些文件。我已经考虑过几种方法。
删除生产服务器上的所有文件,然后上传最新的构建版本。
- 对我来说这似乎是一个糟糕的解决方案,因为这会导致比我希望的更多的停机时间。
创建一个驻留在远程服务器上的脚本,以在新构建过程之后清理文件。我需要从 git(以某种方式?)找出该提交中删除的文件是什么。
不是让 Jenkin 使用通过 ssh 发布的插件,而是在生产服务器上安装 git,因此在成功构建之后,我们可以让 Jenkins(以某种方式?)将项目推送到 git 生产服务器。
这似乎是开发人员的一项常见任务,我觉得我在这里遗漏了一些东西。是否有任何标准做法。
最佳答案
部署前清理远程目录
我能够通过以下方式做到这一点:
- 在Build Environment部分的Job配置中,勾选Send files or execute commands over SSH before the build starts。
- 删除远程服务器上以前版本的构建文件:
sudo rm -r /var/www/html/*
关于git - 如何让 Jenkins 在远程服务器上执行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641610/