go语言项目部署的makefile

go语言项目如何打包,makefile的脚本:

复制代码
ifeq ($(shell uname), Darwin)
    SED := gsed
else
    SED := sed
endif

.PHONY: build
build:
     make api && \
     env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build && \
     scp 项目名称 root@服务器ip:/data/项目路径

.PHONY: api
pb_path=../carku-public/proto
api:
    mkdir -p ./pb && \
    rm -rf ./pb/* && \
    protoc  --proto_path=$(GOPATH)/src/googleapis --proto_path=$(pb_path)  \
      --go-http_out=. --go-grpc_out=. --go_out=. \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
        $(pb_path)/common.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
        $(pb_path)/dms.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/worker.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/pay.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc  --proto_path=$(GOPATH)/src/googleapis --proto_path=$(pb_path)  \
      --openapi_out=fq_schema_naming=true,default_response=false:./pb \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc-go-inject-tag -input=./pb/*.pb.go && \
    $(SED) -i '/^.*summary.*$$/d' ./pb/openapi.yaml && \
    $(SED) -E -i '/description:/ { N; /operationId:/ s/(^[[:space:]]*)description: (.*)\n\1([ ]*operationId:)/\1description: \2\n\1summary: \2\n\1\3/; }' ./pb/openapi.yaml

.PHONY: api-win
pb_path=../carku-public/proto
pb_path2=/c/msys64/ucrt64/include/googleapis
api-win:
    mkdir -p ./pb && \
    rm -rf ./pb/* && \
    protoc  --proto_path=$(pb_path) --proto_path=$(pb_path2) \
      --go-http_out=. --go-grpc_out=. --go_out=. \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
        $(pb_path)/common.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
        $(pb_path)/dms.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/worker.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/pay.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc  --proto_path=$(pb_path) --proto_path=$(pb_path2) \
      --openapi_out=fq_schema_naming=true,default_response=false:./pb \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc-go-inject-tag -input=./pb/*.pb.go && \
    $(SED) -i '/^.*summary.*$$/d' ./pb/openapi.yaml && \
    $(SED) -E -i '/description:/ { N; /operationId:/ s/(^[[:space:]]*)description: (.*)\n\1([ ]*operationId:)/\1description: \2\n\1summary: \2\n\1\3/; }' ./pb/openapi.yaml
相关推荐
老毛肚1 小时前
记一次逆向
开发语言·python
凯瑟琳.奥古斯特1 小时前
力扣1002题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
钟灵9211 小时前
C++【模板初阶】
开发语言·c++·笔记·c#
码不停蹄的玄黓1 小时前
旁路缓存(Cache-Aside,CA)
java·开发语言
江屿风1 小时前
【C++笔记】vector流食般投喂
开发语言·c++·笔记
codeejun1 小时前
每日一Go-75、CI/CD 到 K8s:云原生ArgoCD / GitOps 全流程实战(Go + Gin)
ci/cd·云原生·golang
星恒随风1 小时前
Python 基础语法详解(3):顺序语句、条件语句和循环语句一篇讲清楚
开发语言·笔记·python·学习
CHHH_HHH1 小时前
【C++】红黑树:比AVL树更实用的平衡二叉搜索树
开发语言·数据结构·c++·算法·stl
牛油果子哥q1 小时前
【C++内存对齐与结构体填充】C++内存对齐与结构体填充深度精讲:对齐规则、结构体内存大小计算、填充冗余、笔试真题与工程优化方案
开发语言·c++