LemonTree.Automation is a headless (no UI), server-based version of LemonTree, that can automatically perform consistency checks, compare and merge models as well as publish and import LemonTree Components.
It is build to be able to deployed easily on your agents allowing integration into your Jenkins, Teamcity or similar workflows.
How to Install LemonTree.Automation
There are three general ways to setup LemonTree.Automation. We recommend a zipped deployment for most use-cases.
Install via MSI
This is classic way to install LemonTree.Automation. Just run the Setup file and LemonTree will be installed to
You can download the latest version from our Nexus server via
curl "https://nexus.lieberlieber.com/repository/lemontree-release/LemonTree.Automation/LemonTree.Automation.Zip_Deploy.zip" --output LTA.zip -k
Just extract to a folder of your choice and you are ready to go.
You can also use our Github Action directly from the GitHub marketplace.
- name: Get LemonTreeAutomation uses: LieberLieber/setup-LemonTree.Automation@v0.6
Just add those two lines to your runners .yml file. More details here.
Install via Docker container
Please download and install the docker image with "docker load". "https://docs.docker.com/engine/reference/commandline/load/"
Download and unzip on a Linux Machine and run
curl "./LemonTree.Automation.exe ConsistencyCheck –Model Model.qeax –License license000_ANY.lic"
Direct license deployment
The most straightforward approach is to add the a license file directly on your agent. We recommend adding your license file to the following directory:
For other possible license location please refer to the license section.
Another approach is to supply the license with each command. Just add --license command with the path to your .lic file. In our example repositories we typically store the "License Text" in a Secret and create the .lic file on the fly when we execute the build skript.
Last option is to utilize a central rlm server adding your license(s) to it. This way your agents only request their license during runtime managing check-out and -in automatically. You still need a .lic file locally but with only one line.
HOST (Hostname) ANY (Port)
For more information see Licensing#Floating.
Your first operations
To test your setup here are two easy commands to get started with LemonTree.Automation
This command runs a consistency check on the model given. The first file should have no inconsistencies.
.\LemonTree.Automation.exe consistencycheck --model "%programfiles(x86)%\Sparx Systems\EA\EABase.eapx"
Writing the output of this run directly into a file, because it's a bit to much for the console.
.\LemonTree.Automation.exe consistencycheck --model "%programfiles(x86)%\Sparx Systems\EA\EAExample.qea" > output.log
Two Way Merge
This is a basic two way merge between an empty model (EABase.eapx) and the example model (EAExample.eap) Not that the example model is .qea for EA 16. The command writes the merged eapx file and a session file to "C:\tmp\"
.\LemonTree.Automation.exe merge --mine "%programfiles(x86)%\Sparx Systems\EA\EABase.eapx" --theirs "%programfiles(x86)%\Sparx Systems\EA\EAExample.eap" --out C:\tmp\merged.eapx --sfs C:\tmp\session.ltsfs
More Information and sample Scripts
We build a public trainings repo under https://github.com/LieberLieber/LemonTree.Training , feel free to fork it and try own your own.
Additional sample Workflows and Scripts in Python, Powershell or Batch are available at https://github.com/LieberLieber/LemonTree.Automation.Workflows .