aboutsummaryrefslogtreecommitdiff
path: root/wrappers/dotnet/Taskfile.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers/dotnet/Taskfile.yaml')
-rw-r--r--wrappers/dotnet/Taskfile.yaml60
1 files changed, 60 insertions, 0 deletions
diff --git a/wrappers/dotnet/Taskfile.yaml b/wrappers/dotnet/Taskfile.yaml
new file mode 100644
index 0000000..9690e07
--- /dev/null
+++ b/wrappers/dotnet/Taskfile.yaml
@@ -0,0 +1,60 @@
+#Builds c# libraries for produc
+
+version: '3'
+
+vars:
+ INT_DIR: '{{.SCRATCH_DIR}}/obj/{{.MODULE_NAME}}/'
+ MS_ARGS: '/p:RunAnalyzersDuringBuild=false /p:IntermediateOutputPath="{{.INT_DIR}}" /p:UseCommonOutputDirectory=true /p:BuildInParallel=true /p:MultiProcessorCompilation=true /p:ErrorOnDuplicatePublishOutputFiles=false'
+ PACK_OUT: '{{.OUTPUT_DIR}}/{{.HEAD_SHA}}/pkg'
+
+tasks:
+
+#called by build pipeline to build module
+ build:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ - echo "building module {{.MODULE_NAME}}"
+
+ #build debug mode first
+ - task: build_debug
+ - task: build_release
+
+ publish:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+
+ #push packages to the sleet feed (feed path is vnbuild global)
+ - sleet push "{{.PACK_OUT}}/debug/" --source debug --config "{{.SLEET_CONFIG_PATH}}" --force
+ - sleet push "{{.PACK_OUT}}/release/" --source release --config "{{.SLEET_CONFIG_PATH}}" --force
+
+#called by build pipeline to clean module
+ clean:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ #clean solution
+ - dotnet clean /p:BuildInParallel=true /p:MultiProcessorCompilation=true
+ - for: [ obj/, bin/ ]
+ cmd: powershell rm -Recurse -Force "{{.ITEM}}"
+
+#Build tasks that use the solution file to build the module
+ build_debug:
+ dir: '{{.USER_WORKING_DIR}}'
+ internal: true
+ cmds:
+ - cd {{.MODULE_DIR}} && dotnet publish -c debug {{.MS_ARGS}}
+ - cd {{.MODULE_DIR}} && dotnet pack -c debug {{.MS_ARGS}} -o "{{.PACK_OUT}}/debug/"
+
+ build_release:
+ dir: '{{.USER_WORKING_DIR}}'
+ internal: true
+ cmds:
+ - cd {{.MODULE_DIR}} && dotnet publish -c release {{.MS_ARGS}}
+ - cd {{.MODULE_DIR}} && dotnet pack -c release {{.MS_ARGS}} -o "{{.PACK_OUT}}/release/"
+
+
+ packsource:
+ dir: '{{.USER_WORKING_DIR}}'
+ internal: true
+ cmds:
+ #copy source code to target
+ - powershell -Command "Get-ChildItem -Include *.cs,*.csproj -Recurse | Where { \$_.FullName -notlike '*\obj\*' -and \$_.FullName -notlike '*\bin\*' } | Resolve-Path -Relative | tar --files-from - -czf '{{.TARGET}}/src.tgz'" \ No newline at end of file