Попытка запустить тестовый набор, но Дженкинс не тянет последний код - PullRequest
1 голос
/ 10 апреля 2019

Я использую тестовый набор с использованием 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'
   }
}

Тесты работают нормально, но почему-то они не запускаются на последнем коде, они работают на главной ветке, но в ней нет последнего кода.Кроме того, у меня есть работа по требованию, с которой я хочу попробовать и поэкспериментировать, когда у меня есть информация, может быть, от некоторых из вас.

Ответы [ 5 ]

1 голос
/ 30 апреля 2019

params.buildapp - false, поэтому он не собирает контейнер apache. Код извлекается из вашего репо только тогда, когда этот контейнер создается.

0 голосов
/ 24 апреля 2019

вернемся к этому, так как это вызывает у меня головную боль, поэтому вывод консоли выглядит так:

  Started by timer
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/jobs/Autotest/workspace
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Pull latest Docker repo)
[Pipeline] git
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:domain/myportal-docker.git
 # timeout=10
Fetching upstream changes from git@bitbucket.org:domain/myportal-docker.git
 > git --version # timeout=10
using GIT_SSH to set credentials Jenkins Portal Tests Repo
 > git fetch --tags --progress git@bitbucket.org:domain/myportal-docker.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 20cdc207dc87e736983d6b28b5a81853c7c37f70 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 20cdc207dc87e736983d6b28b5a81853c7c37f70
 > git branch -a -v --no-abbrev # timeout=10
 > git branch -D master # timeout=10
 > git checkout -b master 20cdc207dc87e736983d6b28b5a81853c7c37f70
Commit message: "Got rid of the WORKDIR"
 > git rev-list --no-walk 20cdc207dc87e736983d6b28b5a81853c7c37f70 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Install app)
[Pipeline] sh
[workspace] Running shell script
+ docker-compose down
Stopping workspace_apache_1 ... 
Stopping workspace_mysql_1  ... 
[2A[2K
Stopping workspace_apache_1 ... [32mdone[0m
[2B[1A[2K
Stopping workspace_mysql_1  ... [32mdone[0m
[1BRemoving workspace_apache_1 ... 
Removing workspace_mysql_1  ... 
[1A[2K
Removing workspace_mysql_1  ... [32mdone[0m
[1B[2A[2K
Removing workspace_apache_1 ... [32mdone[0m
[2BRemoving network workspace_frontend
Removing network workspace_backend
[Pipeline] sh
[workspace] Running shell script
+ docker-compose build --no-cache mysql
Building mysql
Step 1/2 : FROM mysql:5.7.24
 ---> ba7a93aae2a8
Step 2/2 : ADD mysql.cnf /etc/mysql/mysql.conf.d/mysql.cnf
 ---> cd3843490228
Successfully built cd3843490228
Successfully tagged workspace_mysql:latest
[Pipeline] echo
Will deploy from feature/docker-enablement
[Pipeline] echo
BuildApp Param false
[Pipeline] sh
[workspace] Running shell script
+ docker-compose up -d
Creating network "workspace_frontend" with the default driver
Creating network "workspace_backend" with the default driver
Creating workspace_mysql_1 ... 
Creating workspace_mysql_1
[1A[2K
Creating workspace_mysql_1 ... [32mdone[0m
[1BCreating workspace_apache_1 ... 
Creating workspace_apache_1
[1A[2K
Creating workspace_apache_1 ... [32mdone[0m
[1B[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Set up Selenium)
[Pipeline] sh
[workspace] Running shell script
+ docker rm selenium -f
selenium
[Pipeline] sh
[workspace] Running shell script
+ docker pull selenium/standalone-chrome
Using default tag: latest
latest: Pulling from selenium/standalone-chrome
Digest: sha256:c478febf26729b7cc27e2fac7d10fa79cf2519b5ab83f9cf82705248258b6495
Status: Image is up to date for selenium/standalone-chrome:latest
[Pipeline] sh
[workspace] Running shell script
+ docker run -d -p 4444:4444 --name=selenium --net=host -v /dev/shm:/dev/shm selenium/standalone-chrome:3.141.59-dubnium
WARNING: Published ports are discarded when using host network mode
952481c15140f1b9fe797cbee495268d7fd191c4ec07194297e19b27109f829a
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Load tests)
[Pipeline] dir
Running in /var/lib/jenkins/jobs/Autotest
[Pipeline] {
[Pipeline] }
[Pipeline] // dir
[Pipeline] git
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:domain/myportal-docker.git
 # timeout=10
Fetching upstream changes from git@bitbucket.org:domain/myportal-docker.git
 > git --version # timeout=10
using GIT_SSH to set credentials Jenkins Portal Tests Repo
 > git fetch --tags --progress git@bitbucket.org:domain/myportal-docker.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision a5ddc6742c13e3b8c37e7ebda625fd8d89b1386a (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f a5ddc6742c13e3b8c37e7ebda625fd8d89b1386a
 > git branch -a -v --no-abbrev # timeout=10
 > git branch -D master # timeout=10
 > git checkout -b master a5ddc6742c13e3b8c37e7ebda625fd8d89b1386a
Commit message: "Commented out the forum request button test"
 > git rev-list --no-walk a5ddc6742c13e3b8c37e7ebda625fd8d89b1386a # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Run tests)
[Pipeline] sh
[workspace] Running shell script
+ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
[Pipeline] sh
[workspace] Running shell script
+ vendor/bin/codecept --debug run --steps tests/jenkins
Codeception PHP Testing Framework v2.5.2
Powered by PHPUnit 6.5.13 by Sebastian Bergmann and contributors.
Running with seed:

После всего вышеперечисленного тесты выполняются нормально, но, как говорит этот поток, а не на последнем коде.

0 голосов
/ 11 апреля 2019

@ teddym6 теперь это выглядит так, мой Dockerfile:

ИЗ webdevops / php-apache: 7.1

ARG WWW_ROOT ARG APP_DIR ARG APP_ROOT = $ {WWW_ROOT} / $ {APP_DIR} АРГ ФИЛИАЛ

ENV WEB_DOCUMENT_ROOT = $ {APP_ROOT} / htdocs

RUN mkdir /root/.ssh/ ДОБАВИТЬ ./.ssh/ /root/.ssh/ RUN chmod -R 0600 /root/.ssh/* RUN echo "Использование ветви $ {BRANCH} для кода" RUN git clone --branch $ {BRANCH} --depth 1 git@bitbucket.org: домен / myportal-docker.git $ {APP_ROOT}

WORKDIR $ {APP_ROOT}

RUN mkdir -p runtime htdocs / assets RUN chmod -R a + w runtime htdocs / assets

WORKDIR / usr / src / app

COPY app / local.php $ {APP_ROOT} /config/local.php

ДОБАВИТЬ. / USR / SRC / приложение WORKDIR / usr / src / app

0 голосов
/ 15 апреля 2019

Какие-нибудь другие идеи с этим, ребята?

Как я пробовал все вышеперечисленное, и ничего не получалось.Тесты работают нормально и все такое, но не по последнему коду.

Как я уже говорил в первом посте, я знаю, потому что у нас есть новая кнопка на первой странице, а ее нет в моей версии, где выполняются тесты.

0 голосов
/ 10 апреля 2019

, вероятно, связано с вашим Dockerfile

, вам необходимо убедиться, что вы закрыли файл с ADD ./yourcodefolder

...