diff options
Diffstat (limited to 'wrappers/dotnet/Taskfile.yaml')
-rw-r--r-- | wrappers/dotnet/Taskfile.yaml | 60 |
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 |