aboutsummaryrefslogtreecommitdiff
path: root/Taskfile.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'Taskfile.yaml')
-rw-r--r--Taskfile.yaml51
1 files changed, 51 insertions, 0 deletions
diff --git a/Taskfile.yaml b/Taskfile.yaml
new file mode 100644
index 0000000..0e42d83
--- /dev/null
+++ b/Taskfile.yaml
@@ -0,0 +1,51 @@
+# https://taskfile.dev
+
+version: '3'
+
+vars:
+ INT_DIR: '{{.SCRATCH_DIR}}/obj/{{.MODULE_NAME}}/'
+ TARGET: '{{.USER_WORKING_DIR}}/bin'
+ RELEASE_DIR: "./bin/release/{{.TARGET_FRAMEWORK}}"
+
+tasks:
+
+ #when build succeeds, archive the output into a tgz
+ postbuild_success:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ #pack up source code and put in output
+ - powershell -Command "Get-ChildItem -Include *.cs,*.csproj -Recurse | Where { \$_.FullName -notlike '*\obj\*' } | Resolve-Path -Relative | tar --files-from - -czf '{{.TARGET}}/src.tgz'"
+
+ #run post in debug mode
+ - for: [ win-x64, linux-x64, osx-x64, linux-arm64, linux-arm ]
+ task: postbuild
+ vars: { BUILD_MODE: debug, TARGET_OS: '{{ .ITEM }}'}
+
+ #remove uncessary files from the release dir
+ - powershell -Command "Get-ChildItem -Recurse '{{.RELEASE_DIR}}/' -Include *.pdb,*.xml | Remove-Item"
+
+ - for: [ win-x64, linux-x64, osx-x64, linux-arm64, linux-arm ]
+ task: postbuild
+ vars: { BUILD_MODE: release, TARGET_OS: '{{ .ITEM }}'}
+
+ postbuild:
+ internal: true
+ dir: '{{.USER_WORKING_DIR}}'
+ vars:
+ BUILD_DIR: "{{.USER_WORKING_DIR}}/bin/{{.BUILD_MODE}}/{{.TARGET_FRAMEWORK}}/{{.TARGET_OS}}/publish"
+ cmds:
+ #copy and readme to target
+ - cmd: cd .. && powershell -Command "Copy-Item -Path ./build.readme.txt -Destination '{{.BUILD_DIR}}/readme.txt'"
+ ignore_error: true
+
+ #tar outputs
+ - cd "{{.BUILD_DIR}}" && tar -czf "{{.TARGET}}/{{.TARGET_OS}}-{{.BUILD_MODE}}.tgz" .
+
+ #Remove the output dirs on clean
+ clean:
+ dir: '{{.USER_WORKING_DIR}}'
+ ignore_error: true
+ cmds:
+ - for: [ bin/, obj/ ]
+ cmd: powershell Remove-Item -Recurse './{{.TARGET}}']
+ \ No newline at end of file