首页 > 解决方案 > 试图运行一个测试套件,但詹金斯没有拉下最新的代码

问题描述

我正在使用 Jenkins 运行一个测试套件,并且我已经配置了一个工作来做到这一点。我有一个正在执行所有步骤的管道脚本,但似乎通过在 LIVE 上添加一个新按钮,在 LIVE 上的最新版本中,我的测试运行了一个没有该按钮的代码版本,似乎它是不拉最新的代码。我在脚本中做错了什么?

我尝试从 Bitbucket 中提取最新代码,但没有成功并通过执行 'docker-compose build --build-arg BRANCH=${branch} apache' 来构建分支

node {
   stage('Pull latest Docker repo') { 
      git credentialsId: 'xyz',
          url: 'git@bitbucket.org:domain/myportal-docker.git'
   }
   stage('Install app') {
      sh 'docker-compose down'
      sh 'docker-compose build --no-cache mysql'
      if (params.buildapp == true){
        sh 'docker-compose build --build-arg BRANCH=${branch} apache'
      }
      sh 'docker-compose up -d'
   }
   stage('Set up Selenium') {
      try {
        sh 'docker rm selenium -f'
      }
      catch(exc) {
        echo 'No selenium container running'
      }
      sh 'docker pull selenium/standalone-chrome'
      sh 'docker run -d -p 4444:4444 --name=selenium --net=host -v /dev/shm:/dev/shm selenium/standalone-chrome:3.141.59-dubnium'
   }
   stage('Load tests') { 
      dir("../") {}
      git credentialsId: 'xyz',
          url: 'git@bitbucket.org:domain/my-tests.git'
   }
   stage('Run tests') {
      sh 'composer install'
      sh 'vendor/bin/codecept --debug run --steps tests/jenkins'
   }
}

测试运行良好,但不知何故,它们没有在最新代码上运行,它们在主分支上运行,但它没有最新代码。此外,我有一个按需工作,一旦有一些信息可能来自你们中的一些人,我想尝试解决它。

标签: seleniumdockerjenkinsbitbucketcodeception

解决方案


params.buildapp 是假的,所以它没有构建 apache 容器。只有在构建此容器时,代码才会从您的存储库中提取。


推荐阅读