Bamboo specs scanner in 6.2 EAP

Hi,

We're trying to use the "Bamboo specs scanner" feature in the 6.2 EAP.

We're stuck at the point of how Bamboo knows there are specs in a project to run, and how it runs them - the configuration of the Linked repository implies that there are plan permissions so I presume it's not just running mvn -Ppublish-specs

It would be particularly useful for us to know how it finds and run the specs, and whether we avoid bundling credential files in the project, as we'd like to include the specs in the development projects themselves.

2 answers

0 vote

Once you have Bamboo Specs source code which can be executed from your local environment it's now possible to commit java classes and pom.xml to bamboo-specs folder 

git repo root
\bamboo-specs
\src
| \PlanSpecs.java
|pom.xml

You should not put .credentials file to your repository

Bamboo specs feature should be enabled for Bitbucket Server repository, also to make things easier you should check flag "All projects". 

Then push your code and check if in Bamboo home xml-data/repository-specs/REPO_ID you see any files. Also Bamboo will send you email if processing of Bamboo Spec was failed. Email recepient is taken from committer details.

 

We are working to make this experience better in Bamboo 6.2 GA

Hi Alexey,

Thanks for your advice on this. We still can't seem to get Bamboo to pick this up even from the advice you've given.

The linked repository definitely has the feature flag enabled and "Access all projects" is also set. We've got a working set of specs based off the 6.2.0-eap Maven archetype, though we've changed the parent pom to be version 6.1.1 as 6.2.0-eap doesn't seem to be in Maven central and overridden the version on the two dependencies.

The structure we're left with is:

repo root/
└── bamboo-specs/
├── src/
│ ├── main/
│ │ └── java/
│ │ ├── DeploySpec.java
│ │ └── PlanSpec.java
│ └── test/
│ └── java/
│ ├── DeploySpecTest.java
│ └── PlanSpecTest.java
└── pom.xml

If I run mvn -Ppublish-specs from the bamboo-specs directory (with an appropriate .credentials file in place), this works fine, but the Bamboo server doesn't seem to pick anything up - there's no repository-specs directory alongside build-data in the xml-dir directory.

Here's the pom.xml, just for ref:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.atlassian.bamboo</groupId>
<artifactId>bamboo-specs-parent</artifactId>
<version>6.1.1</version>
<relativePath/>
</parent>

<groupId>uk.ac.warwick.printercredits</groupId>
<artifactId>bamboo-specs</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>com.atlassian.bamboo</groupId>
<artifactId>bamboo-specs-api</artifactId>
<version>6.2.0-eap</version>
</dependency>
<dependency>
<groupId>com.atlassian.bamboo</groupId>
<artifactId>bamboo-specs</artifactId>
<version>6.2.0-eap</version>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Mat Mannion, sorry for delay, 

I think it's better to check Bamboo logs if event from Bitbucket Server correctly sent to Bamboo, then add some debug settings for code which process repository. We can continue here or you can create support request at support.atlassian.com and our Support engineers will help you or pass it to dev team for investigation. As you know it's new feature and we expect that similar cases will help us to make feature valuable and usable.

Alexey - I have similar issue with using bamboo-specs. I do see this in Bamboo home xml-data/repository-specs/REPO_ID directory with log files.The logs show the error:

Unable to scan repository Bamboospec (181403753) for Bamboo Specs
com.atlassian.bamboo.repository.RepositoryException: Unable to scan repository Bamboospec (181403753) for Bamboo Specs.

I had  everything set to what you have mentioned. for me, mvn command works but the git push changes throws the error mentioned earlier. Do you have any suggestions to fix the error. Thanks.

Venku 

Venku, do you have any additional messages in logs?

Alexey - Thanks for your response. Here is the stack trace

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.524 s
[INFO] Finished at: 2018-03-26T11:02:06-04:00
[INFO] Final Memory: 32M/635M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.atlassian.bamboo:bamboo-specs-runner:6.2.5:run (default-cli) on project bamboo-specs-generator: Execution default-cli of goal com.atlassian.bamboo:bamboo-specs-runner:6.2.5:run failed: java.lang.reflect.InvocationTargetException: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.atlassian.bamboo.specs.util.IsolatedYamlizator$$Lambda$11/180084736 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Unable to scan repository Bamboospec (181403753) for Bamboo Specs
com.atlassian.bamboo.repository.RepositoryException: Unable to scan repository Bamboospec (181403753) for Bamboo Specs
 at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.lambda$runSpecs$9(RepositoryStoredSpecsServiceImpl.java:501)
 at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl$$Lambda$1930/766619154.call(Unknown Source)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:47)
 at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26)
 at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17)
 at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41)
 at java.lang.Thread.run(Thread.java:745)
Caused by: com.atlassian.utils.process.ProcessException: Non-zero exit code: 1

mvn -Ppublish-specs -X works from me. but anything from git repo gives me the error mentioned in my previous comments

I would suggest to open support ticket and provide full logs to our support engineers to investigate problem further. From log I see there's ClassNotFoundException, but need to gather more details about environment to understand what's the reason

Thanks Alexey. Is this a Jira ticket?

Support team suggest to upgrade jdk on bamboo server. The reported error got fixed by upgrading to latest version of  jdk 8 (bamboo 6.2.5). 

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 18, 2017 in Bamboo

FAQ: How to Upgrade Bamboo Server

Bamboo 5.9 will no longer be supported after June 12, 2017. What does this mean? As part of our End of Life policy, Atlassian supports major versions for two years after the first major iteratio...

1,576 views 0 6
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you