我如何告诉Jenkins/Hudson仅针对我的Git树中特定项目的更改触发构建?
我的公司现在正在使用Subversion,我们让Jenkins拉动SCM进行更改,如果有任何更改,它将执行Maven构建.
我们正在转向Git,但我没有看到任何方法来拉动Git存储库进行更改......我错过了什么?
我有一组使用以下groovy脚本生成的多分支管道作业:
[
'repo1',
'repo2',
].each { service ->
multibranchPipelineJob(service) {
displayName(service)
branchSources {
git {
remote("git@gitlab.com:whatever/${service}.git")
credentialsId('gitlab-ssh-key')
}
}
orphanedItemStrategy {
discardOldItems {
daysToKeep(0)
numToKeep(30)
}
}
triggers {
periodic(5)
}
}
}
Run Code Online (Sandbox Code Playgroud)
在每个仓库中Jenkinsfile,其外观如下:
#!/usr/bin/env groovy
properties([
gitLabConnection('ci@gitlab.com'),
pipelineTriggers([
[
$class : 'GitLabPushTrigger',
triggerOnPush : true,
triggerOnMergeRequest: true,
]
]),
disableConcurrentBuilds(),
overrideIndexTriggers(false)
])
node {
def sbtHome = tool name: 'sbt-0.13.15', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder\$SbtInstallation'
stage('Checkout') {
checkout scm
}
stage('Build') {
sh "'${sbtHome}/bin/sbt' clean compile"
}
stage('Test') {
sh …Run Code Online (Sandbox Code Playgroud) 我刚刚在Nginx的反向代理后面设置Jenkins(最新的 - 2.5),以便我可以通过HTTPS访问它.
它正在工作,但是我的Multibranch Pipeline作业不再在主配置中有"Trigger Builds Remotes"选项.我认为我没有改变任何其他配置.任何想法发生了什么以及如何取回它?
这就是我想要的:
我是从詹金斯开始的.
我想,每次我执行git commit(或push?)时,我的离子项目的jasmine测试都已执行,并且必须在提交之前完成.
实际上,它有两个问题:
在这一刻,我执行测试:
npm test
Run Code Online (Sandbox Code Playgroud)
谢谢您的问候
我有一个GIT储存库所在的网络共享。在我的本地计算机上,我已经签出了GIT储存库,我正在其中使用集成了GIT客户端的Xamarin Studio。此外,我已经安装了Jenkins以进行持续集成。到目前为止,一切都正常。
现在,我想在将某些内容提交到此存储库时通知Jenkins。在如何通过按下git触发器使Jenkins CI掌握方面?据说我应该在设置Poll SCM选项后创建一个github后接收触发器。
Nav的帖子说,我只需要post-commit在hooks文件夹中创建一个文件,其内容类似于
#!/bin/sh
#
# A script which triggers the Jenkins build after a commit.
curl http://localhost:8080/jenkins/git/notifyCommit?url=http://localhost:8080/job/MyJobName/
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试在浏览器中打开URL,我会得到
HTTP错误404
访问/ jenkins / git / notifyCommit时出现问题。原因:
Run Code Online (Sandbox Code Playgroud)Not Found
现在,我将网址交换为
http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>
Run Code Online (Sandbox Code Playgroud)
并直接在浏览器中调用此URL即可构建。将其放入脚本中不会在提交后触发构建。我将钩子放入网络共享上的上述目录中。将脚本放在本地存储库中也没有触发构建。
那么,如何创建与Xamarin Studio一起使用的git后接收触发器?
编辑:
现在,我将本地挂钩的权限更改为755,并确实删除了文件扩展名,但未触发生成。