aboutsummaryrefslogtreecommitdiff
path: root/plugins/ObjectCacheServer/server/container/Taskfile.yaml
blob: e02f1b325b08f66bf68731c98fbb29a9a0957c27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# https://taskfile.dev

#inlcuded by the ci main taskfile to produce containerized builds, and also
#be included by the container itself to run build tasks inside the container

version: "3"

vars:
  INCLUDE_FILES: "Dockerfile, docker-compose.yaml"

tasks:
  #called from inside the container to build native libraries
  build-libs:
    vars:
      OUT_DIR: "{{.USER_WORKING_DIR}}/out"

    #build stage generates the following libraries
    generates:
     - "{{.USER_WORKING_DIR}}/out/libvn_rpmalloc.so"

    cmds:
      #build rpmalloc library
      - cd lib/vnlib_rpmalloc/ && task && cp build/libvn_rpmalloc.so {{.OUT_DIR}}/libvn_rpmalloc.so 

  #called from ci pipline to build the package
  build:
    cmds:
     # clean up the run.sh script to remove windows line endings in my wsl default instance
     - cmd: wsl dos2unix ./run.sh
       platforms: [ windows/amd64 ]

     #init build image
     - task: setup-container-image

     #remove the default config file as it's not needed in the container
     - powershell -Command "rm -Force -Recurse build/app/config/"

  postbuild_success:
    cmds:
     #tar up the build directory and move it to the output bin directory
     - cmd: cd build/ && tar -czf '{{ .BINARY_DIR }}/{{.PACKAGE_FILE_NAME}}' .
     #clean up all the build files after build succeeds
     - task: clean

  clean:
    ignore_error: true
    cmds:
    - cmd: powershell -Command "rm -Recurse -Force ./build"

  setup-container-image:
    internal: true
    cmds:
     #make build directory
     - powershell -Command "mkdir build, build/app, build/app/config-templates/, build/app/static/ -Force"
     #copy the existing linux-x64 build to the build folder, this will be the container base
     - powershell -Command "cp -Recurse -Force ../build/linux-x64/* build/app/"
     #copy local scripts and config data into the build folder
     - powershell -Command "cp -Force run.sh, Taskfile.yaml build/app/"
     - powershell -Command "cp -Force Dockerfile, docker-compose.yaml build/"
     - powershell -Command "cp -Force static/* build/app/static/"
     - powershell -Command "cp -Force config-templates/* build/app/config-templates/"