#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'"