Meego Wiki
Views

Release Infrastructure/BOSS Process

From MeeGo wiki
< Release Infrastructure(Difference between revisions)
Jump to: navigation, search
(Created page with "== BOSS == BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around …")
 
Line 22: Line 22:
</pre>
</pre>
-
For more complex examples and the syntax reference please check the ruote documentation : http://ruote.rubyforge.org/definitions.html
+
For more complex examples and the syntax reference please check the ruote documentation : http://ruote.rubyforge.org/definitions.html  and  http://ruote.rubyforge.org/expressions.html
=== Process store ===
=== Process store ===

Latest revision as of 13:03, 13 October 2010

BOSS

BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps. For more BOSS related general information, see Infrastructure/BOSS.


What is BOSS Process

BOSS Process is the workflow definition. Process defines the business logic that is to be executed.

Processes can be as simple or as complex as needed. They can define a linear execution of participants, have conditionals, loops and concurrency.

Here's a simple example :

process['definition'] = """
Ruote.process_definition :name => 'notification' do
  sequence do
    notify
  end        
end
"""

For more complex examples and the syntax reference please check the ruote documentation : http://ruote.rubyforge.org/definitions.html and http://ruote.rubyforge.org/expressions.html

Process store

The concept of a process store is helpful when dealing with multiple launchers and processes. It is simply a filesystem hierarchy that maps to a certain logical conditions and aids in the selection of the processes to launch which are stored in text files. The store can be managed using a VCS to track changes and ease deployment to production systems.

Here's an example of such a structure :

.
└── Domain
    └── Project
        ├── EventName1
        └── EventName2

The launcher script would traverse the tree matching the event data accordingly until it reaches a file with the event name, then it opens the file and reads the process definition inside.

Personal tools