Is there a reference of Bamboo YAML Specs
Asked by Henning Rogge:

I am looking for a reference of the (current) complete Bamboo YAML specs or at least a good JSON schema file to see what options are available.

I have read [bamboo-specs-docs 6.10.4](https://docs.atlassian.com/bamboo-specs-docs/6.10.4/specs.html?yaml) , but this is NOT a reference... this is a series of examples at best or a "how to start" at worst.

The ability to use the same build plan for multiple things, to share common parts of a build plan or just to have a clean versioned build plan in GIT sounds great.


Answers:
author: Jeyanthan I
body: The link you have provided is the actual complete documentation reference for YAML.

If you are looking for steps to implement this, this tutorial page might come handy -[Tutorial: Bamboo Specs YAML stored in Bitbucket Server](https://confluence.atlassian.com/bamboo/tutorial-bamboo-specs-yaml-stored-in-bitbucket-server-941616819.html).

Cheers,  
Jey

comments: author: Henning Rogge
body: My issue with this document is that the text on the left has nearly no connection to the "example" on the right. A complete list of "what keys can I set for a plan/stage/job/task" would be a start. Something like a schema giving a complete reference what data is parsed by bamboo.

The "script task" description for example says that I can set an environment variable... but the YAML part has no example for this, it only contains USING an environment variable.


author: Victor Debone
body: Hello [@Henning Rogge](/t5/user/viewprofilepage/user-id/1428957), I agree that a JSON Schema would be really helpful to write Bamboo Specs YAML and it would be more informative than what any reference can be. We have the open suggestion under [BAM-20543.](https://jira.atlassian.com/browse/BAM-20543) Please share your thoughts there.

Also, I see that the examples were not 100% helpful in your case. What do you miss on them?

Finally, I can also understand the misleading example of environment variables. In YAML the example is trying to convey the environment variables on the line:

    - export ANT_OPTS=-Xmx700m 

Anything else that was not clear on the Script task example?


author: Henning Rogge
body: The script task problem was just a symptom for the whole document. I rarely find a single description in the document which doesn't lead to more questions than answers.

I was looking for a way to use the same Bamboo plan for several different repositories and YAML specs looked like a first good shot.

We are using Bamboo to automatically build Debian files for several project. Each of the build plans use the same 5 stages:

- gather all build requirements  
- construct a Docker container with installed build dependencies  
- build debian package  
- construct a Docker container with installed debian package (and runtime depenencies)  
- run tests

We use the docker containers to prevent running building and testing with root permissions (which are necessary to install build/runtime dependencies).

At the moment this is a pain in the ass, because I have no way to easily keep the plans in sync, I have to go through all of them with the web-gui by hand as soon as I make an improvement.