пятница, 10 апреля 2020 г.

Почему не стоит привязываться к номеру Build в проектах развёртывания Bamboo

Что это было? (С) Генерал


Ниже, вы найдёте сугубо личное мнение.
Как вы будете организовывать управление версиями в своей среде - остаётся на ваше усмотрение.

При работе с проектами развёртывания в Bamboo увидел интересную ситуацию (см. скриншот ниже).



В формировании версии использовался номер сборки.  
В результате параллельного запуска двух сборок та, которая имела номер ниже закончилась позже.




Разница составила всего ничего, а суда по всему в проекте развёртывания, Bamboo признал последней версию с номером 189, хотя реально 190-я была последней с точки зрения изменения кода. Наверное, это не страшно, т.к. в моём случае номер сборки не являлся определяющим, но хотелось бы, чтобы нумерация шла по порядку.

среда, 8 апреля 2020 г.

Проблема с загрузкой артифактов на Bamboo CI Server

В процессе работы столкнулся с проблемой при загрузке артифактов на сервер Bamboo.

Характерная ошибка, возникающая в логах плана, выглядит следующим образом:

26-Mar-2020 17:49:10 com.atlassian.bamboo.build.artifact.BambooRemoteArtifactHandler: java.net.SocketException: Software caused connection abort: socket write error
26-Mar-2020 17:49:10 Unable to publish artifact [All source code]: Unable to publish artifact Required job artifact: [All source code], pattern: [**] for KDP-WDIBD11-BA-1 via com.atlassian.bamboo.build.artifact.BambooRemoteArtifactHandler@5ad7c7
26-Mar-2020 17:49:10 The artifact is required, build will now fail.



Во всех случаях и с IIS, и с Tomcat проблемы вызывается двумя факторами: 

  • либо это таймаут на загрузку;
  • либо ограничение размера на загрузку контента;


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


Проблема с JavaSpec и Docker в Bamboo 6.10.4, установленном на Windows Server

Пытался написать план на основе JavaSpec и для того, чтобы Bamboo смог использовать его - создал необходимый репозитарий. Настроил соотвествующие Checkbox и в предвкушении нажал кнопку Scan.

Заметка: не забудьте установить Docker на хосте с  Bamboo CI Server. Также, понадобиться настроить Docker для запуска Linux контейнера на Windows.

Bamboo пошуршал и выдал ошибку.

Необходимо убедиться, что сервис Bamboo  работает из под доменной/локальной учётной записи, но не из под системной, иначе получите следующую ошибку.


1:30 Caused by: com.spotify.docker.client.exceptions.DockerException: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: com.spotify.docker.client.shaded.org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect


Однако, после исправления проблему с учётной записью и перезапуска Scan стало веселее:

01-Apr-2020 15:58:27 Unable to scan repository Verification Bamboo Specs (18415878) for Bamboo Specs
01-Apr-2020 15:58:27 com.atlassian.bamboo.repository.RepositoryException: Unable to scan repository Verification Bamboo Specs (18415878) for Bamboo Specs
01-Apr-2020 15:58:27 at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.lambda$runSpecsWithDocker$9(RepositoryStoredSpecsServiceImpl.java:935)
01-Apr-2020 15:58:27 at java.util.concurrent.FutureTask.run(Unknown Source)
01-Apr-2020 15:58:27 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
01-Apr-2020 15:58:27 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
01-Apr-2020 15:58:27 at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48)
01-Apr-2020 15:58:27 at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26)
01-Apr-2020 15:58:27 at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17)
01-Apr-2020 15:58:27 at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41)
01-Apr-2020 15:58:27 at java.lang.Thread.run(Unknown Source)
01-Apr-2020 15:58:27 Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: POST https://192.168.99.100:2376/containers/create?name=bamboo-specs-6900b8d8-551c-4d96-ba8b-ef2530d5c8e6: 400, body:
{"message":"the working directory '\\mnt\\input' is invalid, it needs to be an absolute path"}

01-Apr-2020 15:58:27


И вот тут крылось удивительное: в Bamboo существует баг, который приводит к ошибке выше, если Bamboo CI Server установлен на Windows Server. Судя по всему этот баг никто пока не исправил и не понятно когда исправят. 

"BambooBAM-20115RSS processing inside Windows Docker Engine container uses incorrect path representation"

В общем, рекомендация одна - используйте Linux.