使用Jenkins克隆或提取gitlab代码以避免合并问题的最佳方法

使用Jenkins克隆或提取gitlab代码以避免合并问题的最佳方法,jenkins,jenkins-pipeline,jenkins-cli,Jenkins,Jenkins Pipeline,Jenkins Cli,使用Jenkins克隆或提取gitlab代码的最佳方法是什么,我有这个管道。然而,我看到合并问题突然出现,然后它忽略了其他构建。最好的方法是什么。以下是我的管道和错误: pipeline { agent any environment { APPIUM_PORT_ONE= 4723 APPIUM_PORT_TWO= 4724 } tools {nodejs "node"} stages { stage('Che

使用Jenkins克隆或提取gitlab代码的最佳方法是什么,我有这个管道。然而,我看到合并问题突然出现,然后它忽略了其他构建。最好的方法是什么。以下是我的管道和错误:

pipeline {
    agent any

    environment {
        APPIUM_PORT_ONE= 4723
        APPIUM_PORT_TWO= 4724
    }

  tools {nodejs "node"}

  stages {
        stage('Checkout App 1') {
            steps {
                dir("/Users/Desktop/app1") {
                sh 'git pull ###'
                }
                echo "Building.."

            }
        }

        stage('Checkout App 2') {
            steps {
                dir("/Users//Desktop/app2") {
                echo "Building.."
                sh 'git pull ###'
                }
            }
        }

        stage('Checkout Mirror') {
            steps {
                echo "Building.."
            }
        }

        stage('Checkout End to End Tests') {
            steps {
                dir("/Users/Desktop/qa-end-to-end/") {
                sh 'git pull ###'
            }

            }
        }

        stage('Starting Appium Servers') {
            steps {
                parallel(
                    ServerOne: {
                    echo "Starting Appium Server 1"
                    dir("/Users/Desktop/qa-end-to-end/") {
                    }
                  },
                    ServerTwo: {
                    echo "Starting Appium Server 2"
                  })
                  }
              }

          stage('Starting End to End Tests') {
            steps {
                echo "Starting End to End Tests"
                dir("/Users/Desktop/qa-end-to-end/") {
                sh './tests.sh'
                echo "Shutting Down Appium Servers"
            }
          }
        }

        stage('Publish Report') {
            steps {
                echo "Publishing Report"
            }
        }
    }
}  

我是不是应该从头开始克隆而不是拉?。任何文件都会有帮助

除非回购协议很大,而且从头开始克隆非常耗时,否则我会这么做。 然后,您确定您有干净正确的代码来运行

checkout([$class: 'GitSCM',
  branches: [[name: '*/master']],
  doGenerateSubmoduleConfigurations: false,
  extensions: [[$class: 'CleanCheckout']],
  submoduleCfg: [],
  userRemoteConfigs: [[credentialsId: 'GIT', url: 'git@git.com:repo.git']]])
可以在您的目录块中运行此功能,也可以将要签出的扩展添加到子目录中

extensions: [[$class: 'RelativeTargetDirectory', 
        relativeTargetDir: 'checkout-directory']]
如果要跨构建持久化工作区,请不要忘记删除旧签出