github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/.taskjob/win64.yaml (about)

     1  version: '3'
     2  
     3  vars:
     4    GOOS: $(go env GOOS)
     5    GOARCH: $(go env GOARCH)
     6    BIN_DIR: $(pwd)/bin
     7    CLIENT_OUT_DIR: client/out
     8    CLIENT_BIN_DIR: client/bin
     9    CLIENT_OUT_DIR_EXECUTABLE: "{{.CLIENT_OUT_DIR}}/executable/"
    10    CLIENT_OUT_DIR_UPGRADE: "{{.CLIENT_OUT_DIR}}/upgrade/"
    11    QINIU_DIR: .release/qiniu
    12    VERSION:
    13      sh: head -n 1 VERSION
    14    PROJECT: zd
    15    GO_VERSION:
    16      sh: go version
    17    BUILD_TIME:
    18      sh: git show -s --format=%cd
    19    GIT_HASH:
    20      sh: git show -s --format=%H
    21    LDFLAGS: "-w -s \
    22      -X 'main.AppVersion={{.VERSION}}' \
    23      -X 'main.BuildTime={{.BUILD_TIME}}' \
    24      -X 'main.GoVersion={{.GO_VERSION}}' \
    25      -X 'main.GitHash={{.GIT_HASH}}'"
    26  
    27  tasks:
    28    default:
    29      cmds:
    30        - task: clear
    31        - task: build_ui
    32        - task: prepare_build
    33        - task: compile_all
    34        - task: copy_files
    35        - task: package
    36  
    37    package:
    38      desc: package
    39      vars:
    40        PLATFORMS:
    41          sh: ls {{.CLIENT_OUT_DIR_EXECUTABLE}}
    42      cmds:
    43        - find . -name .DS_Store -print0 | xargs -0 rm -f
    44        - for platform in {{.PLATFORMS}}; do mkdir -p {{.QINIU_DIST_DIR}}/$${platform}; done
    45        - task: package_win64
    46  
    47    package_win64:
    48      desc: package win64
    49      dir: "{{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/"
    50      cmds:
    51        - zip -ry {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64.zip .
    52        - md5sum {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64.zip > {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64.zip.md5
    53        - cp -r ../../../ui ./
    54        - zip -ry {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64-upgrade.zip .
    55        - md5sum {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64-upgrade.zip > {{.QINIU_DIST_DIR}}/win64/{{.PROJECT}}-win64-upgrade.zip.md5
    56  
    57    copy_files:
    58      desc: copy files
    59      cmds:
    60        - cp -r .zd.conf {{.BIN_DIR}}
    61        - cp -r data {{.BIN_DIR}}
    62        - cp -r yaml {{.BIN_DIR}}
    63        - cp -r users {{.BIN_DIR}}
    64        - cp -r demo {{.BIN_DIR}}
    65        - cp -r runtime {{.BIN_DIR}}
    66        - rm -rf {{.BIN_DIR}}/demo/out
    67        - rm -rf {{.BIN_DIR}}/yaml/article/chinese/slang/out
    68        - rm -rf {{.BIN_DIR}}/runtime/protobuf/out
    69        - mkdir -p {{.BIN_DIR}}/tmp/cache
    70        - sqlite3 tmp/cache/.data.db ".backup '{{.BIN_DIR}}/tmp/cache/.data.db'"
    71        - sqlite3 '{{.BIN_DIR}}/tmp/cache/.data.db' ".read 'xdoc/clear-data.txt'"
    72        - task: copy_files_win64
    73        # - |
    74        #     for platform in {{.PLATFORMS}};do \
    75        #       cp -r .zd.conf "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    76        #       cp -r bin/data "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    77        #       cp -r bin/runtime "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    78        #       cp -r bin/yaml "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    79        #       cp -r bin/users "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    80        #       cp -r bin/demo "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    81        #       cp -r bin/tmp "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}"; \
    82        #       cp {{.BIN_DIR}}/$${platform}/{{.PROJECT}}.exe "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}" || true; \
    83        #       cp {{.BIN_DIR}}/$${platform}/{{.PROJECT}} "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}" || true; \
    84        #       cp {{.BIN_DIR}}/$${platform}/{{.PROJECT}}-gui.exe "{{.CLIENT_OUT_DIR_EXECUTABLE}}$${platform}" || true; \
    85        #     done
    86        # - rm -rf {{.BIN_OUT}}/linux/runtime/php
    87        # - rm -rf {{.BIN_OUT}}/linux/runtime/protobuf/bin/mac
    88        # - rm -rf {{.BIN_OUT}}/linux/runtime/protobuf/bin/win*
    89        # - rm -rf {{.BIN_OUT}}/darwin/runtime/php
    90        # - rm -rf {{.BIN_OUT}}/darwin/runtime/protobuf/bin/linux
    91        # - rm -rf {{.BIN_OUT}}/darwin/runtime/protobuf/bin/win*
    92        # - rm -rf {{.BIN_OUT}}/win64/runtime/protobuf/bin/linux
    93        # - rm -rf {{.BIN_OUT}}/win64/runtime/protobuf/bin/mac
    94  
    95    copy_files_win64:
    96      desc: copy files win64
    97      cmds:
    98        - cp -r .zd.conf {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
    99        - cp -r bin/data {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   100        - cp -r bin/runtime {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   101        - cp -r bin/yaml {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   102        - cp -r bin/users {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   103        - cp -r bin/demo {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   104        - cp -r bin/tmp {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   105        - cp {{.BIN_DIR}}/win64/{{.PROJECT}}.exe {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   106        - cp {{.BIN_DIR}}/win64/{{.PROJECT}}-gui.exe {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/
   107  
   108    compile_all:
   109      desc: compile all
   110      cmds:
   111        - task: compile_win64
   112  
   113    compile_win64:
   114      desc: compile win64
   115      cmds:
   116        - task: compile_launcher_win64
   117        - task: compile_server_win64
   118        - task: package_gui_win64_client
   119        - task: compile_command_win64
   120  
   121    compile_command_win64:
   122      desc: compile command win64
   123      cmds:
   124        - GOOS=windows GOARCH=amd64 go build -ldflags {{.LDFLAGS}} -o {{.BIN_DIR}}/win64/{{.PROJECT}}.exe cmd/command/main.go
   125  
   126    package_gui_win64_client:
   127      desc: package gui win64 client
   128      cmds:
   129        - rm -rf {{.CLIENT_BIN_DIR}}/*
   130        - mkdir -p {{.CLIENT_BIN_DIR}}/win64
   131        - cp -rf {{.BIN_DIR}}/win64/server.exe {{.CLIENT_BIN_DIR}}/win64/server.exe
   132        - task: package_win64_client
   133        - rm -rf {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64
   134        - mkdir -p {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64
   135        - cp -rf {{.CLIENT_BIN_DIR}}/win64 {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64
   136        - mv {{.CLIENT_OUT_DIR}}/{{.PROJECT}}-win32-x64 {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/gui
   137  
   138    package_win64_client:
   139      desc: package win64 client
   140      dir: client
   141      cmds:
   142        - npm install
   143        - npm run package-win64
   144  
   145    compile_server_win64:
   146      desc: compile server win64
   147      cmds:
   148        - GOOS=windows GOARCH=amd64 go build -ldflags {{.LDFLAGS}} -o {{.BIN_DIR}}/win64/server.exe cmd/server/main.go
   149        - rm -rf {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64
   150        - mkdir -p {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64
   151        - cp {{.BIN_DIR}}/win64/server.exe {{.CLIENT_OUT_DIR_EXECUTABLE}}/win64/server.exe
   152  
   153    compile_launcher_win64_dep:
   154      desc: compile launcher win64 dep
   155      cmds:
   156        - rsrc -arch amd64 -manifest xdoc/main.manifest -ico xdoc/favicon.ico -o cmd/launcher/main.syso
   157  
   158    compile_launcher_win64:
   159      desc: compile launcher win64
   160      deps:
   161        - task: compile_launcher_win64_dep
   162      dir: cmd/launcher
   163      cmds:
   164        - GOOS=windows GOARCH=amd64 go build -ldflags {{.LDFLAGS}} -o ../../{{.BIN_DIR}}/win64/{{.PROJECT}}-gui.exe
   165  
   166    prepare_build:
   167      desc: prepare build
   168      cmds:
   169        - task: clear
   170        - task: update_version_in_config
   171        - task: gen_version_file
   172        - task: prepare_res
   173  
   174    prepare_res:
   175      desc: prepare res
   176      cmds:
   177        - cp res/zh/sample.yaml demo/default.yaml
   178  
   179    gen_version_file:
   180      desc: gen version file
   181      cmds:
   182        - mkdir -p {{.QINIU_DIR}}/{{.PROJECT}}
   183  
   184    update_version_in_config:
   185      desc: update version in config
   186      cmds:
   187        - sed -i "s/Version.*/Version = {{.VERSION}}/" .zd.conf
   188        - echo '{"version":"{{.VERSION}}"}' > {{.QINIU_DIR}}/{{.PROJECT}}/version.json
   189        - echo '{{.VERSION}}' > {{.QINIU_DIR}}/{{.PROJECT}}/version.txt
   190  
   191    build_ui:
   192      desc: build ui
   193      dir: ui
   194      cmds:
   195        - yarn install
   196        - yarn build --dest ../client/ui
   197  
   198    clear:
   199      desc: clear
   200      cmds:
   201        - rm -rf {{.BIN_DIR}}
   202        - rm -rf {{.CLIENT_OUT_DIR}}
   203      status:
   204        - test -d {{.BIN_DIR}}
   205        - test -d {{.CLIENT_OUT_DIR}}