-
Notifications
You must be signed in to change notification settings - Fork 1
Home
rosaliafx edited this page Mar 25, 2015
·
8 revisions
Rosalia is a concurrency-aware build automation tool that utilize monadic query-comprehension syntax to allow writing tasks in concise and strongly-typed manner using C#.
##Quick example##
var fooTask = Task( /**********************/
"fooTask", /* define a task as */
() => { /* a simple action... */
// do something here /**********************/
});
var barTask = Task( /**********************/
"barTask", /* ..or use a func if */
() => { /* you need to return */
return "bar".AsTaskResult(); /* a result... */
}); /**********************/
var bazTask = Task( /**********************/
"bazTask", /* ...or use a class */
new MyCustomTask()); /* to encapsulate */
/* task logic */
/**********************/
var mainTask = Task( /***********************************************/
"mainTask", /* Use Linq query-comprehension to fetch */
from barResult in barTask /* results from prior tasks (actually monads) */
from bazResult in bazTask /* and define dependencies at the same time. */
select new MyMainTask( /***********************************************/
barResult,
bazResult).AsTask(),
Default(), /* This task is default */
DependsOn(fooTask)); /* Add one more dependency manually */
Writing Tasks
- Creating a Workflow
- Defining Tasks
- Share State accross Tasks
- Mastering Dependencies
- Using result transformers
- Using Subflows to organize tasks
- Tasks Preconditions
- Recovering failure results
- Declaring dynamic tasks
- Creating Custom Tasks
Running Tasks
API
Tasklib