我的问题是相当主观的,主持人请不要关闭它,因为我想知道有经验的书呆子的观点.
我是部署领域的新手,并且正在jenkins上做一些RTFM ,来自python/django背景我搜索了github以找到django-jenkins.
CI的整个想法是建立一个持续的构建过程,以便在构建失败时可以恢复到最后阶段.
据我所知,jenkins在服务器上运行,如果所有测试都通过,代码被推送到github或其他一些repo,它会运行测试并进行部署.它可能通过民意调查或cron工作与回购交谈.
然而,当我在文档中查看django-jenkins时,它被提到了
./manage.py jenkins
Run Code Online (Sandbox Code Playgroud)
这意味着,我们可以将命令添加到设置文件,在本地测试然后进行部署.(如果我错了,请纠正我)
那有什么区别呢?django-jenkins是否删除了使用jenkins进行CI的其他服务器的需求?
请让我知道,并告诉我我错在哪里.
我有一些我工作的Django项目,我使用Jenkins进行持续集成.我已经安排好了一段时间并且运行良好.
我希望能够生成自动化的测试覆盖率报告,并让Jenkins处理它们.它看起来像django-jenkins是那样的方式,所以我安装了它coverage.
这是我的相关部分settings.py:
# Jenkins integration
INSTALLED_APPS += ('django_jenkins',)
JENKINS_TASKS = (
'django_jenkins.tasks.with_coverage',
'django_jenkins.tasks.run_pylint',
'django_jenkins.tasks.django_tests',
)
PROJECT_APPS = ['myapp']
Run Code Online (Sandbox Code Playgroud)
现在,我可以运行python manage.py jtest,它按预期工作.但是,如果我运行python manage.py jenkins,它会出错:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 76, in load_command_class
return module.Command()
File "/home/matthew/Projects/blah/venv/local/lib/python2.7/site-packages/django_jenkins/management/commands/__init__.py", …Run Code Online (Sandbox Code Playgroud) 我在Jenkins有超过100个工作,因为我们更改了git服务器,所以我必须在每个工作中更改Git URL.我必须遍历每个工作并更改Git URL.任何人都可以用一个时髦的脚本来帮助我吗?
我能够遍历每个作业,但无法获取Git URL或更改它:
import hudson.plugins.emailext.*
import hudson.model.*
import hudson.maven.*
import hudson.maven.reporters.*
import hudson.tasks.*
// For each project
for(item in Hudson.instance.items) {
println("JOB : " + item.name);
}
Run Code Online (Sandbox Code Playgroud)
我非常需要帮助,请有人帮助我.
jenkins jenkins-plugins django-jenkins jenkins-scriptler jenkins-cli