Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cis-workflow-gen
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
msc
cis-workflow-gen
Commits
7c527e6f
There was a problem fetching the pipeline stages.
Commit
7c527e6f
authored
4 years ago
by
Recolic K
Browse files
Options
Downloads
Patches
Plain Diff
update demo
parent
9bcf7e78
No related branches found
No related tags found
No related merge requests found
Pipeline
#852
passed with stage
in 9 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
activity.hpp
+18
-0
18 additions, 0 deletions
activity.hpp
web/demo.cc
+23
-20
23 additions, 20 deletions
web/demo.cc
workflows/another.cc
+11
-11
11 additions, 11 deletions
workflows/another.cc
xaml-template.hpp
+4
-0
4 additions, 0 deletions
xaml-template.hpp
with
56 additions
and
31 deletions
activity.hpp
+
18
−
0
View file @
7c527e6f
...
@@ -112,7 +112,25 @@ namespace CIS {
...
@@ -112,7 +112,25 @@ namespace CIS {
xamlCode
.
replace_once
(
"__TEMPLATE_ARG_EntityDefPlaceholder"
,
entityXaml
);
xamlCode
.
replace_once
(
"__TEMPLATE_ARG_EntityDefPlaceholder"
,
entityXaml
);
return
xamlCode
;
return
xamlCode
;
}
}
};
class
Noop
:
public
ActivityBase
{
public:
explicit
Noop
(
string
displayName
,
string
entityName
=
""
)
:
displayName
(
Utility
::
HtmlEscapeString
(
displayName
)),
entityName
(
entityName
)
{}
Noop
(
const
Noop
&
)
=
default
;
Noop
(
Noop
&&
)
=
default
;
private
:
string
displayName
,
entityName
;
virtual
rlib
::
string
generateXaml
()
const
override
{
rlib
::
string
xamlCode
=
templates
::
NOOP_XAML
;
xamlCode
.
replace_once
(
"__TEMPLATE_ARG_DisplayName"
,
displayName
);
auto
entityXaml
=
this
->
entityName
==
""
?
""
:
rlib
::
string
(
templates
::
ENTITY_DEF_TEMPLATE
).
replace
(
"__TEMPLATE_ARG_EntityName"
,
this
->
entityName
);
xamlCode
.
replace_once
(
"__TEMPLATE_ARG_EntityDefPlaceholder"
,
entityXaml
);
return
xamlCode
;
}
};
};
class
Flow
{
class
Flow
{
...
...
This diff is collapsed.
Click to expand it.
web/demo.cc
+
23
−
20
View file @
7c527e6f
// This is a DEMO. You may use any C++17 syntax here.
// This is a DEMO. You may use any C++17 syntax here.
// 先演示一下定义一个Activity和ManualOperation的
正常
语法。
// 先演示一下定义一个Activity和ManualOperation的
基本
语法。
//
(ActivityName, ClassName_In_Our_Code , DependencyEntityName)
//
Activity
(ActivityName, ClassName_In_Our_Code , DependencyEntityName)
Activity
HaveASleep
(
"HaveASleep"
,
"FleetAGC.Activities.DelayActivity"
,
""
);
Activity
HaveASleep
(
"HaveASleep"
,
"FleetAGC.Activities.DelayActivity"
,
""
);
HaveASleep
.
addInputSetting
(
"Timespan"
,
"60"
);
HaveASleep
.
addInputSetting
(
"Timespan"
,
"60"
);
// (DisplayName , Message , DependencyEntityName)
// ManualOperation(DisplayName , Message , TeamId to alert , DependencyEntityName)
ManualOperation
AlertSomeone
(
"AlertSomeone"
,
"This is some message"
,
""
);
ManualOperation
AlertSomeone
(
"AlertSomeone"
,
"This is some message"
,
"AzDNetDeployments"
,
""
);
// Noop(DisplayName , DependencyEntityName)
Noop
DummyNode
(
"Just do nothing"
,
""
);
// 但是如果你要定义很多很多Activity,建议下面的方法偷懒。
// 但是如果你要定义很多很多Activity,建议下面的方法偷懒。
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
{
// 偷懒方案1
{
// 偷懒方案1
// 这里假设你想用FleetAGC.Activities.DelayActivity,并且想给他一个TimeSpan参数。
// 这里假设你想用ManualOperation。
#define AC(name, entityName) \
#define AC(teamid, entityName) auto teamid = ManualOperation("Alert" #teamid, "This is an alert to wake you up!", #teamid, #entityName);
auto name = Activity(#name, "FleetAGC.Activities.DelayActivity", entityName).addInputSetting("Timespan", "60");
// 这里也有一个带参数的DelayActivity的例子。
// #define AC(name, entityName) auto name = Activity(#name, "FleetAGC.Activities.DelayActivity", #entityName).addInputSetting("Timespan", "60");
// 使用刚刚定义的偷懒宏。
// 使用刚刚定义的偷懒宏。
AC
(
GridManager
,
"
M365Poc.SPO.GridManager
"
)
AC
(
GridManager
Team
,
M365Poc
.
SPO
.
GridManager
)
AC
(
AuthAndProvision
,
"
M365Poc.SPO.AuthProvisioning
"
)
AC
(
AuthAndProvision
Team
,
M365Poc
.
SPO
.
AuthProvisioning
)
AC
(
FarmsAndTennats
,
""
)
AC
(
FarmsAndTennats
,
)
AC
(
CSC
,
""
)
AC
(
CSC
,
)
AC
(
FastSearch
,
""
)
AC
(
FastSearch
,
)
AC
(
Microservices
,
"
M365Poc.SPO.MicroServices
"
)
AC
(
Microservices
,
M365Poc
.
SPO
.
MicroServices
)
AC
(
MonitorAndAlert
,
"
M365Poc.SPO.MonitoringAlerting
"
)
AC
(
MonitorAndAlert
,
M365Poc
.
SPO
.
MonitoringAlerting
)
AC
(
SPOTooling
,
"
M365Poc.SPO.SPOTooling
"
)
AC
(
SPOTooling
,
M365Poc
.
SPO
.
SPOTooling
)
AC
(
UXCDNFailover
,
"
M365Poc.SPO.UXCDNFailover
"
)
AC
(
UXCDNFailover
,
M365Poc
.
SPO
.
UXCDNFailover
)
AC
(
ODFBSyncClient
,
"
M365Poc.SPO.ODFBSyncClient
"
)
AC
(
ODFBSyncClient
,
M365Poc
.
SPO
.
ODFBSyncClient
)
// 把定义好的Activity组合一下,其中箭头表示串行,竖线表示并行。
// 把定义好的Activity组合一下,其中箭头表示串行,竖线表示并行。
auto
block1
=
GridManager
>>
FarmsAndTennats
>>
(
CSC
|
FastSearch
);
auto
block1
=
GridManager
Team
>>
FarmsAndTennats
>>
(
CSC
|
FastSearch
);
auto
block2
=
Microservices
|
MonitorAndAlert
;
auto
block2
=
Microservices
|
MonitorAndAlert
;
auto
completeFlow
=
block1
|
AuthAndProvision
|
block2
>>
SPOTooling
|
UXCDNFailover
|
ODFBSyncClient
;
auto
completeFlow
=
block1
|
AuthAndProvision
Team
|
block2
>>
SPOTooling
|
UXCDNFailover
|
ODFBSyncClient
;
// 最后指定一下workflow的名字就可以了。
// 最后指定一下workflow的名字就可以了。
println
(
completeFlow
.
generateXaml
(
"FleetAGC.Workflows.SPOBuildoutPOCWorkflow"
));
println
(
completeFlow
.
generateXaml
(
"FleetAGC.Workflows.SPOBuildoutPOCWorkflow"
));
...
@@ -53,3 +55,4 @@ if constexpr(false) { // 偷懒方案2
...
@@ -53,3 +55,4 @@ if constexpr(false) { // 偷懒方案2
// 最后指定一下workflow的名字就可以了。
// 最后指定一下workflow的名字就可以了。
println
(
completeFlow
.
generateXaml
(
"FleetAGC.Workflows.SPOBuildoutPOCWorkflow"
));
println
(
completeFlow
.
generateXaml
(
"FleetAGC.Workflows.SPOBuildoutPOCWorkflow"
));
}
}
This diff is collapsed.
Click to expand it.
workflows/another.cc
+
11
−
11
View file @
7c527e6f
...
@@ -16,19 +16,19 @@ ManualOperation AlertSomeone ("AlertSomeone", "This is some message", "AzDNetDep
...
@@ -16,19 +16,19 @@ ManualOperation AlertSomeone ("AlertSomeone", "This is some message", "AzDNetDep
{
// 偷懒方案1
{
// 偷懒方案1
// 这里假设你想用FleetAGC.Activities.DelayActivity,并且想给他一个TimeSpan参数。
// 这里假设你想用FleetAGC.Activities.DelayActivity,并且想给他一个TimeSpan参数。
#define AC(name, entityName) \
#define AC(name, entityName) \
auto name = Activity(#name, "FleetAGC.Activities.DelayActivity", entityName).addInputSetting("Timespan", "60");
auto name = Activity(#name, "FleetAGC.Activities.DelayActivity",
#
entityName).addInputSetting("Timespan", "60");
// 使用刚刚定义的偷懒宏。
// 使用刚刚定义的偷懒宏。
AC
(
GridManager
,
"
M365Poc.SPO.GridManager
"
)
AC
(
GridManager
,
M365Poc
.
SPO
.
GridManager
)
AC
(
AuthAndProvision
,
"
M365Poc.SPO.AuthProvisioning
"
)
AC
(
AuthAndProvision
,
M365Poc
.
SPO
.
AuthProvisioning
)
AC
(
FarmsAndTennats
,
""
)
AC
(
FarmsAndTennats
,
)
AC
(
CSC
,
""
)
AC
(
CSC
,
)
AC
(
FastSearch
,
""
)
AC
(
FastSearch
,
)
AC
(
Microservices
,
"
M365Poc.SPO.MicroServices
"
)
AC
(
Microservices
,
M365Poc
.
SPO
.
MicroServices
)
AC
(
MonitorAndAlert
,
"
M365Poc.SPO.MonitoringAlerting
"
)
AC
(
MonitorAndAlert
,
M365Poc
.
SPO
.
MonitoringAlerting
)
AC
(
SPOTooling
,
"
M365Poc.SPO.SPOTooling
"
)
AC
(
SPOTooling
,
M365Poc
.
SPO
.
SPOTooling
)
AC
(
UXCDNFailover
,
"
M365Poc.SPO.UXCDNFailover
"
)
AC
(
UXCDNFailover
,
M365Poc
.
SPO
.
UXCDNFailover
)
AC
(
ODFBSyncClient
,
"
M365Poc.SPO.ODFBSyncClient
"
)
AC
(
ODFBSyncClient
,
M365Poc
.
SPO
.
ODFBSyncClient
)
// 把定义好的Activity组合一下,其中箭头表示串行,竖线表示并行。
// 把定义好的Activity组合一下,其中箭头表示串行,竖线表示并行。
auto
block1
=
GridManager
>>
FarmsAndTennats
>>
(
CSC
|
FastSearch
);
auto
block1
=
GridManager
>>
FarmsAndTennats
>>
(
CSC
|
FastSearch
);
...
...
This diff is collapsed.
Click to expand it.
xaml-template.hpp
+
4
−
0
View file @
7c527e6f
...
@@ -105,6 +105,10 @@ R"XAML( <mwcwa:ManualOperation TaskId="__TEMPLATE_ARG_TaskId" DisplayName="__
...
@@ -105,6 +105,10 @@ R"XAML( <mwcwa:ManualOperation TaskId="__TEMPLATE_ARG_TaskId" DisplayName="__
</mwcwa:ManualOperation>
</mwcwa:ManualOperation>
)XAML"
;
)XAML"
;
constexpr
auto
NOOP_XAML
=
R"XAML( <mwcwa:NoOpsActivity DisplayName="__TEMPLATE_ARG_DisplayName" __TEMPLATE_ARG_EntityDefPlaceholder/>
)XAML"
;
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment