Jenkins job triggered twice

不想你离开。 提交于 2019-12-13 03:57:06

问题


1) I am using Jenkins API to trigger a job, so when my monitoring tool sensu sends request Jenkins API to trigger jenkins JOb the build starts. 2) I have tried even manually by hitting buildnow instead of using API calls to make sure that it is not API call problem.

What does my build contain? It runs on Master and runs a ansible play-book with help of ansible plugin

Problem: Once the build is complete it is successful it automatically triggers another build with no reason again and runs the build again. And it is a simple job configuration which runs on master and runs ansible-playbook with help of Jenkins provided plugin

Any one could help me in what might be the issue? Jenkins Version: 2.89.3 Ansible plugin: 0.8

Also i could see for a jenkins job Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz for a single build


回答1:


Instead of using the Ansible plugin, I recommend doing the Jenkins way:

Create a pipeline from a Jenkinsfile with something like:

pipeline {
    parameters {
        string(name: 'Parameter1', defaultValue: 'value1', description: 'Parameter1?')
        string(name: 'Parameter2', defaultValue: 'value2', description: 'Parameter2?')
        string(name: 'Parameter3', defaultValue: 'value3', description: 'Parameter3?')

    }

    agent any

    options {
        ansiColor('xterm')
        timestamps()
    }

    stages {
        stage('Run Ansible Playbook') {
            steps {
                script {
                    retry (1) {
                        try {

                            echo "Build ${params.Parameter1} on ${params.Parameter2}"

                            sh "export ANSIBLE_FORCE_COLOR=true && \
                                ansible-playbook -vv \
                                                -i inventories/hosts \
                                                -e \"var1=${Parameter1}\" \
                                                -e \"var2=${Parameter2}\" \
                                                -e \"var3=${Parameter3}\" \
                                                --vault-password-file ~/.ansible/vaultpass.txt \
                                                playbooks/main.yml"
                        }
                        catch (exception) {
                            throw exception
                        }

                        finally {
                            sh "export ANSIBLE_FORCE_COLOR=true && \
                                ansible-playbook -vv \
                                                -i inventories/hosts \
                                                -e \"var1=${Parameter1}\" \
                                                -e \"var2=${Parameter2}\" \
                                                -e \"var3=${Parameter3}\" \
                                                --vault-password-file ~/.ansible/vaultpass.txt \
                                                playbooks/clean.yml"
                        }
                    }
                }
            }
        }
    }
}

You can control your pipeline in a more clean an easy way than with the Ansible Plugin.




回答2:


Does this issue happen when you build it manually also ?? if that's the case, then I would just looking into the configuration of Jenkins build and ensure that you haven't selected the option Build other project's in the Post Build section and mentioned the same project :P

EDITED

jenkins job Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz Started by user xyz for a single build

If you are facing the above issue then it happens because the project is been triggered more than once in my case, I have clicked on the job twice hence you see that started by admin twice because you would have checked the option
Do not allow concurrent builds

Jenkins has that issue where there is a slight delay to see the build happening when you click on a build project, hence making you click on it again.




回答3:


If you see a job getting triggered twice even when you manually trigger, it might be in the way the Jenkins job is configured. Make sure you have concurrent build disabled.

  • Open your Jenkins Job
  • Click Configure
  • Uncheck Execute concurrent builds if necessary
  • Click Save



来源:https://stackoverflow.com/questions/50397198/jenkins-job-triggered-twice

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!